pikachu—SSRF篇

SSRF(服务请求伪造)漏洞:主要原因在于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址进行严格的过滤和限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。

PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()

一、ssrf(curl)

Curl命令支持http、file、ftp、gopher等多种协议。
我们可以看到这里使用了url参数。
在这里插入图片描述

1. file协议

由此我们可以利用file协议来让服务器访问自己本地的文件。
payload:http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file:///F:\phpstudy_pro\WWW\xx.txt
在这里插入图片描述

2. http协议

也可以利用该服务器去访问别的服务器,例如访问百度
payload:http://127.0.0.1/vul/ssrf/ssrf_curl.php?url=www.baidu.com
在这里插入图片描述

3. dict协议
也可以通过dict来扫描3306端口是否开放
payload:http://127.0.0.1/vul/ssrf/ssrf_curl.php?url=dict://127.0.0.1:3306在这里插入图片描述

二、ssrf(file_get_content)

题目中的file_get_content函数作用是读取文件的内容, 可直接读取主机绝对路径或相对路径的文件, 也可以使用php伪协议进行利用。
我们可以看到url中有file参数,由此我们可以想到利用伪协议可以进行源代码查看或者本地文件访问。
在这里插入图片描述

1. 读取文件
在这里插入图片描述

2. 利用php伪协议查看源代码
payload:http://127.0.0.1/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=F:\phpstudy_pro\WWW\xx.txt
在这里插入图片描述我们可以看到源码被加密,看密文的特点推测为Base64加密。
我们可以搜索在线Base64解密网站:在线base64解密在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐