ssrf概述
ssrf源码分析
ssrf(curl)
将url参数的值设为https://www.baidu.com/,得到返回页面,可知已访问了www.baidu.com的资源
代码分析
curl 模拟浏览器请求的,比如获取获取远程的网页,文件等,虽然可以使用file_get_contents函数 但是 curl支持cookie 自定义浏览器类型,来源 ip等等。
ssrf(file_get_contents)
url换成www.baidu.com
这里file_get_contents函数还有一个文件包含漏洞,利用php伪协议读取文件的源码,url赋值php://filter/read=convert.base64-encode/resource=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php读取源码
代码分析
file_get_contents也可以抓取远程网页内容,详情google。
ssrf修复
1.白名单
2.对返回内容进行识别
3.需要使用互联网资源(比如贴吧使用网络图片)而无法使用白名单的情况:首先禁用
CURLOPT_FOLLOWLOCATION;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致
如果curl爬取过程中,设置CURLOPT_FOLLOWLOCATION为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面