SSRF(Server-Side Request Forgery:服务器端请求伪造)
其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据
数据流:攻击者----->服务器---->目标地址
根据后台使用的函数的不同,对应的影响和利用方法又有不一样
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()
如果一定要通过后台服务器远程去对用户指定(“或者预埋在前端的请求”)的地址进行资源请求,则请做好目标地址的过滤。
SSRF(curl)
点击链接,由于端口号pikachu没有给所以要自己加上:
将url指向百度:
查看源码:
我们可以把 url 中的内容改成内网的其他服务器上地址和端口,探测内网的其他信息,比如端口开放情况,下面这个例子就探测出10.1.2.193这台机器开放了8088端口
SSRF(file_get_content)
同样先点链接:
file_get_content 可以对本地和远程的文件进行读取,替换file内容,payload:file=http://127.0.0.1:8088/1.txt
payload:file=file:///D://1.txt
读取phpinfo.php代码内容显示为base64的形式file=php://filter/read=convert.base64-encode/resource=…/…/…/phpMyAdmin/phpinfo.php
base64解密: