当前位置: 首页 > news >正文

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修复建议

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


http://www.mrgr.cn/news/8634.html

相关文章:

  • Kubernetes
  • 企业选择raksmart大带宽服务器的原因
  • java springboot 实现文件上传下载(文件服务器,文件统一处理,图片,word,pdf,视频,等)
  • 华为手机相册的照片丢失或误删怎么恢复?
  • 哈里和梅根的批评者似乎并不理解“不可征服运动会”的全球影响力
  • 什么是微服务?
  • 针对防火墙IPSec业务不通或业务丢包问题,防火墙如何做流量统计、远程抓包、报文示踪
  • 图解Kafka | 28张图彻底搞懂消费者
  • Redis保姆级安装教程
  • css flex布局 justify-content: space-between 最后两张居左
  • 如何上传NPM包:一步步指南
  • fluent UI 中的Combobox如何在option的上面加一个input
  • MySQL系列—MySQL编译安装常见问题(或缺少依赖)及解决方法,MySQL 编译安装时需要安装的依赖(全)
  • [论文笔记] eval-big-refactor lm_eval 每两个任务使用一个gpu,并保证端口未被使用
  • [论文笔记]Improving Retrieval Augmented Language Model with Self-Reasoning
  • 04_DOM的diffing算法
  • 【设计模式】组合模式和(宏)命令模式
  • Oracle 同义词SYNONYM 的实战使用
  • fpga图像处理实战-图像膨胀
  • 通过FileReader API获取上传音频的长度