0x01fastjson介绍
fastjson是阿里巴巴开源的json解析库,通常被用于java object和json字符之间进行转换,提供两个方法json.tojsonstring和json.parseobject/json.parse来分别实现序列化与反序列化。
序列化:将对象转化为字节序列。
反序列化:将字节序列转化为对象。
0x02fastjson漏洞原理
漏洞主要原因是因为autotype功能,这个功能用于fastjson对json格式进行序列化与反序列化,在其序列化中会多写入一个@type,这个@type来标记被序列化的类名,在反序列化过程中会读取这个@type,尝试把json内容反序列化成对象,并且会调用setter或者getter方法,,所以只需要构造一个恶意json字符,使用@type指定一个想要的攻击库就可以实现攻击。
举个例子,黑客比较常用的攻击类库是com. sun.Towset. JdibcRowSetImpl,这是sun官方提供的一个类库,这个类的dataSourceName支持传入一个rmi的源,当解析这个uri的时候,就会支持rmi远程调用,去指定的rmi地址中去调用方法。
0x03fastjson漏洞复现(1.2.24、1.2.47)反序列化
0x03-01 fastjson识别
1:json传输就去尝试
2:报错出现com.alibaba.fastjson.JSON 就为fastjson框架
注
版权归原作者 h1dm 所有, 如有侵权,请联系我们删除。