pikachu-ssrf源码分析及修复

ssrf概述

pikachu-ssrf源码分析及修复_第1张图片

ssrf源码分析

ssrf(curl)

pikachu-ssrf源码分析及修复_第2张图片
pikachu-ssrf源码分析及修复_第3张图片
将url参数的值设为https://www.baidu.com/,得到返回页面,可知已访问了www.baidu.com的资源

pikachu-ssrf源码分析及修复_第4张图片
代码分析
curl 模拟浏览器请求的,比如获取获取远程的网页,文件等,虽然可以使用file_get_contents函数 但是 curl支持cookie 自定义浏览器类型,来源 ip等等。
pikachu-ssrf源码分析及修复_第5张图片

ssrf(file_get_contents)

pikachu-ssrf源码分析及修复_第6张图片
url换成www.baidu.com

pikachu-ssrf源码分析及修复_第7张图片
这里file_get_contents函数还有一个文件包含漏洞,利用php伪协议读取文件的源码,url赋值php://filter/read=convert.base64-encode/resource=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php读取源码
pikachu-ssrf源码分析及修复_第8张图片

pikachu-ssrf源码分析及修复_第9张图片
代码分析
file_get_contents也可以抓取远程网页内容,详情google。
pikachu-ssrf源码分析及修复_第10张图片

ssrf修复

1.白名单
2.对返回内容进行识别
3.需要使用互联网资源(比如贴吧使用网络图片)而无法使用白名单的情况:首先禁用
CURLOPT_FOLLOWLOCATION;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致
如果curl爬取过程中,设置CURLOPT_FOLLOWLOCATION为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面

你可能感兴趣的:(web学习)