SSRF(Server-Side Request Forgery:服务器端请求伪造) php
其造成的缘由大都是因为服务端提供了从其余服务器应用获取数据的功能,但又没有对目标地址作严格过滤与限制前端
致使攻击者能够传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据
数据流:攻击者----->服务器---->目标地址
根据后台使用的函数的不一样,对应的影响和利用方法又有不同 后端
PHP中下面函数的使用不当会致使SSRF:浏览器
file_get_contents()服务器
fsockopen()cookie
curl_exec() curl
若是必定要经过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请作好目标地址的过滤。 ide
1.提供了一个连接,点击这个连接能够返回一首诗,观察 url 发现它传递了一个 url 给后台函数
2.将url参数的值设为https://www.baidu.com/,获得返回页面,可知已访问了www.baidu.com的资源url
3.代码分析
curl 模拟浏览器请求的,好比获取获取远程的网页,文件等,虽然可使用file_get_contents函数 可是 curl支持cookie 自定义浏览器类型,来源 ip等等。
1.这里file_get_contents函数还有一个文件包含漏洞,利用php伪协议读取文件的源码,url赋值php://filter/read=convert.base64-encode/resource=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php读取源码
2.代码分析
file_get_contents也能够抓取远程网页内容,