@@ -24,13 +24,13 @@ Apache Tomcat 9 < 9.0.31
2424
2525## 环境搭建
2626
27- Vulhub执行如下命令启动一个Tomcat 9.0.30:
27+ Vulhub 执行如下命令启动一个 Tomcat 9.0.30:
2828
2929```
3030docker-compose up -d
3131```
3232
33- 环境启动后,访问` http://your-ip:8080 ` 即可查看tomcat默认页面,此时通过AJP协议的8009端口亦可访问Tomcat 。
33+ 环境启动后,访问 ` http://your-ip:8080 ` 即可查看 tomcat 默认页面,此时通过 AJP 协议的 8009 端口亦可访问 Tomcat 。
3434
3535## 漏洞复现
3636
@@ -39,33 +39,33 @@ docker-compose up -d
3939- https://github.com/chaitin/xray
4040- https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
4141
42- 通过漏洞POC [ CNVD-2020-10487-Tomcat-Ajp-lfi] ( https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi ) 进行测试,注意,代码基于python2环境 。
42+ 通过漏洞 POC [ CNVD-2020-10487-Tomcat-Ajp-lfi] ( https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi ) 进行测试,注意,代码基于 python2 环境 。
4343
44- 读取WEB -INF/web.xml文件 :
44+ 读取 WEB -INF/web.xml 文件 :
4545
4646![ image-20220302160031354] ( images/202203021600655.png )
4747
48- 在docker的ROOT目录下新建文件用来测试是否可以成功读取,首先进入容器新建一个flag.txt文件 :
48+ 在 docker 的 ROOT 目录下新建文件用来测试是否可以成功读取,首先进入容器新建一个 flag.txt 文件 :
4949
5050```
5151[root@VM-16-16-centos CVE-2020-1938]# docker exec -it fbe4 /bin/bash
5252root@fbe43a63b620:/usr/local/tomcat# cd webapps/ROOT/
5353root@fbe43a63b620:/usr/local/tomcat/webapps/ROOT# echo "flag{Woooooooo}" > flag.txt
5454```
5555
56- 执行CNVD -2020-10487-Tomcat-Ajp-lfi.py读取flag.txt文件 ,读取成功:
56+ 执行 CNVD -2020-10487-Tomcat-Ajp-lfi.py 读取 flag.txt 文件 ,读取成功:
5757
5858```
5959python CNVD-2020-10487-Tomcat-Ajp-lfi.py 127.0.0.1 -p 8009 -f flag.txt
6060```
6161
6262![ image-20220412145606643] ( images/image-20220412145606643.png )
6363
64- ### 反弹shell
64+ ### 反弹 shell
6565
66- 该漏洞需要配合文件上传漏洞才能利用,假设服务器已经有了存在一个txt文件 ,里面的内容可以执行任意命令(实际情况中,要利用目标服务器的文件上传功能上传文件)。
66+ 该漏洞需要配合文件上传漏洞才能利用,假设服务器已经有了存在一个 txt 文件 ,里面的内容可以执行任意命令(实际情况中,要利用目标服务器的文件上传功能上传文件)。
6767
68- 构造payload :
68+ 构造 payload :
6969
7070![ image-20220412151753346] ( images/image-20220412151753346.png )
7171
@@ -82,29 +82,29 @@ python CNVD-2020-10487-Tomcat-Ajp-lfi.py 127.0.0.1 -p 8009 -f flag.txt
8282
8383```
8484
85- 将内容保存在txt文件里,使用命令将txt文件复制到服务器的ROOT路径 :
85+ 将内容保存在 txt 文件里,使用命令将 txt 文件复制到服务器的 ROOT 路径 :
8686
8787```
8888[root@VM-16-16-centos CVE-2020-1938]# docker cp shell.txt fbe4:/usr/local/tomcat/webapps/ROOT/
8989```
9090
91- 要想实现文件包含,必须要运行包含的文件,所以目标文件需要是jsp 。
91+ 要想实现文件包含,必须要运行包含的文件,所以目标文件需要是 jsp 。
9292
93- 此处需要修改CNVD -2020-10487-Tomcat-Ajp-lfi.py脚本中的文件名asdf为asdf .jsp:
93+ 此处需要修改 CNVD -2020-10487-Tomcat-Ajp-lfi.py 脚本中的文件名 asdf 为 asdf .jsp:
9494
9595![ image-20220412151136832] ( images/image-20220412151136832.png )
9696
97- 执行CNVD -2020-10487-Tomcat-Ajp-lfi.py读取shell.txt文件,执行反弹shell命令 :
97+ 执行 CNVD -2020-10487-Tomcat-Ajp-lfi.py 读取 shell.txt 文件,执行反弹 shell 命令 :
9898
9999```
100100python CNVD-2020-10487-Tomcat-Ajp-lfi-shell.py 127.0.0.1 -p 8009 -f shell.txt
101101```
102102
103- 监听6666端口,成功接收反弹shell :
103+ 监听 6666 端口,成功接收反弹 shell :
104104
105105![ image-20220412152039391] ( images/image-20220412152039391.png )
106106
107- ## 漏洞POC
107+ ## 漏洞 POC
108108
109109``` python
110110# !/usr/bin/env python
@@ -410,4 +410,3 @@ _,data = t.perform_request('/asdf',attributes=[
410410print (' ----------------------------' )
411411print (" " .join([d.data for d in data]))
412412```
413-
0 commit comments