pikachu SSRF (Server-Side Request Forgery 服务器端请求伪造)(皮卡丘漏洞平台通关系列)

本文通过两个实战案例,详细解析了SSRF漏洞的原理及其利用方式,包括使用curl和file_get_contents函数通过不同协议读取本地及内网资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、官方介绍

 二、开始闯关吧

第1关 SSRF(curl)

1、file协议查看本地文件

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

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

第2关 SSRF(file_get_content)

1、file读取本地文件

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

3、http协议请求内网资源

4、为啥ftp不行呢?


一、官方介绍

本节引用内容来自pikachu漏洞平台

SSRF(Server-Side Request Forgery:服务器端请求伪造)

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制

导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()
            
如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。

你可以根据"SSRF"里面的项目来搞懂问题的原因

 二、开始闯关吧

第1关 SSRF(curl)

这一关刚进去是这样的,按照指示点击下图红框框里面的链接

然后就得到了下图红框框里的带参数的url,参数名是url,参数值是一个url(emmmm……)

然后……不太懂php的curl,于是百度一下

看一下菜鸟教程的介绍(https://www.runoob.com/php/php-ref-curl.html

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

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

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

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

1、file协议查看本地文件

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

输入payload:http://192.168.101.16/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/windows/system32/drivers/etc/hosts

可以查看文件C:\Windows\System32\drivers\etc\hosts的内容

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值