pikachu靶场—SSRF篇
本文介绍了SSRF(服务请求伪造)漏洞的原理及利用方式。当服务端未严格过滤目标地址时,攻击者可通过file、http、dict等协议访问本地文件或扫描端口。文章演示了使用curl和file_get_contents函数实现SSRF攻击的方法,包括利用file协议读取本地文件、http协议访问外部网站、dict协议探测端口状态,以及通过php伪协议查看源代码。这些攻击方式展示了SSRF漏洞的严重性,
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解密
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)