关于LinkWeChat的一次代码审计记录
2023-12-4 12:1:38 Author: www.freebuf.com(查看原文) 阅读量:59 收藏

freeBuf

主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

免责声明

本帖旨在于技术交流,请勿用于任何不当用途!由此而引起的一切不良后果均与本人无关。

一、项目简介

项目名:LinkWeChat

gitee:https://gitee.com/LinkWeChat/link-wechat.git

LinkWeChat 是基于企业微信的开源 SCRM 系统,主要运用于电商、零售、教育、金融、政务等服务行业领域。

二、认证鉴权漏洞

通过对系统架构图的分析可知认证鉴权的第一道防线主要在网关lw-gateway,核心在lw-auth

通过分析gateway的有关过滤器,如AuthFilter,并未发现绕过可能。

曾尝试利用白名单加 ../的方式,但并未成功,但是通过对另外部分代码的分析发现了其它一些问题。

com/linkwechat/gateway/filter/AuthFilter.java:52

1701524830_656b355e4c8356d7a8b8a.png!small?1701524831012

1701524936_656b35c8db0602b6055f2.png!small?1701524937450

1701525045_656b36355d6f681773b4d.png!small?1701525046657

1.jwtToken伪造

通过代码审计发现系统硬编码了密钥secret,这将导致众多客户默认使用该密钥,攻击者可利用该密钥伪造出任意用户的认证信息,包括管理员。

com/linkwechat/common/utils/JwtUtils.java:27

1701525267_656b3713442c4f4372cf0.png!small?1701525268001

1701525575_656b3847cd86fed8d063d.png!small?1701525576219

我们通过相同的jwt算法即可生成对应目标的认证信息并成功调用接口

1701525869_656b396d30841a4fe03db.png!small?1701525870245

1701527232_656b3ec02e6e79f6c6892.png!small?1701527233024

2.普通用户提权为系统管理员

我们首先发现了一个重置密码的接口/resetPwd

com/linkwechat/web/controller/system/SysUserController.java:276

1701526554_656b3c1ae6ddde965


文章来源: https://www.freebuf.com/articles/web/385579.html
如有侵权请联系:admin#unsafe.sh