SRC挖掘
业务支付逻辑安全案例
某度ID值爆破任意登录
社交应用越权泄露漏洞
某迅相册APP绕过XSS
某度利用上传触发XSS
泄露验证造成签约越权
小程序放包绕过人脸识别
业务逻辑绕过人脸识别
竞争并发拿下挑战赛
某B未绑定导致任意注册
时间校验机制领取VIP
某视频不安全对象引用
无回显SSRF修改利用
社交应用放包越权测回
理财支付漏洞四舍五入
某迅API分享导致重定向
吃货去改包提权超管
某云厂商社区SSRF挖掘
代金卷导致的支付错误
某鹅邮箱附件上传XSS
导出功能导致任意修改
某商城补领优惠券并发
限制购买多次创建绕过
钓鱼供应链挖掘利用
老SQL注入换思路就行
EDUSRC玩通用逻辑
企业功能从限制入手
从逆向角度玩APP测试
CNVD通用漏洞证书思路
地图Key泄露绕过利用
绕过CDN获取2高2中
首单VIP签约叠加使用
简单的JS分析未授权
冷门CORS配置出错挖掘
登录框到通用漏洞挖掘
统一系统认证挖掘点
前端校验错误直接捡洞
前端检验导致信息泄露
众测SRC测试姿势总结
细微数据包找越权撤回
AI代码审计实现自动出货
小程序资产测文件上传
爆破支付密码绕过限制
APP绕过时间过期限制
某APP逆向渗透测试总
EDU证书985泄露越权
小程序让地址校验失效
短信验证码缺陷到弱口令
JS逆向签名链到任意登录
AI拿下第一个SRC漏洞
某EDU通用系统渗透测试
盘点主流大厂SRC规则
AI自动搞定小程序审计
2026浏览器安全插件
AI+小程序任意登录漏洞
小迪安全知识库
-
+
首页
AI+小程序任意登录漏洞
AI+小程序任意登录漏洞
前言 圈友的点,拿来学习一手,挖掘过程遇到了很多问题,通过交流也学习到了,很多之前不太了解的内容,交流是个好东西。 信息收集 直接搜索学校的名字,会看到很多学校相关的小程序,我们来到红色箭头这个小程序这里,这个就是本次的挖掘目标  edusrc挖掘的话,小程序信息收集,直接丢学校名字在搜一搜里面, 搜到公众号打公众号,有小程序打小程序就行,非常适合,天天感觉 自己找不到边缘资产的师傅,直接跳过信息收集,挖就完了。 漏洞测试 点击小程序进行 查看,发现有很多功能,但是都是需要登录的  我们点击登录  在点击获取手机号登录,看到了这  一般看到这个,经常打小程序的师傅 点击允许拦截burp数据包,可以看到存在这三个参数  ## 微信小程序 session\_key 泄露导致任意用户登录漏洞分析 ### 1\. 漏洞概述 该漏洞属于**身份认证绕过**类型。当微信小程序的 `session_key`、`encryptedData`、`iv` 三个参数同时被攻击者获取时,攻击者可通过解密、篡改、重加密的方式,伪造任意用户的授权数据,从而实现**无需密码的任意用户登录**。 1.1 漏洞标识 项目 内容 漏洞类型 身份认证绕过 / 会话劫持 威胁等级 高危 利用条件 三个参数同时泄露 影响范围 存在参数泄露的小程序及其用户 * * * ## 2\. 核心概念解释 参数 含义 正常存储位置 `encryptedData` 微信返回的用户信息密文(如手机号、昵称) 客户端临时持有,提交后端解密 `iv` 加密算法所需的初始向量 随 `encryptedData` 一同提交 `session_key` 会话密钥,用于解密 `encryptedData` **仅限后端存储,严禁返回客户端** `openId` 用户在特定小程序中的唯一标识 后端存储 * * * ## 3\. 攻击原理 ### 3.1 正常登录流程(标准设计) 用户客户端微信服务器小程序后端1\. wx.login() 获取 code2\. 传递 code3\. code + appid + secret4\. 返回 session\_key + openid5\. 存储 session\_key(不返回客户端)6\. 用户授权(手机号/个人信息)7\. 返回 encryptedData + iv8\. 提交 encryptedData + iv9\. 使用本地 session\_key 解密10\. 返回登录凭证 (token)用户客户端微信服务器小程序后端 这里我们直接使用工具加泄露的iv和key对进行encrypdata解密,发现不太行  对key和iv进行解url码 https://www.toolhelper.cn/EncodeDecode/Url  发现再次解密显示这个,这里就到我的知识盲区了,这个时候 圈友告诉我这这两个值长度不对,是通过加密或者其他方式进行后期处理的  ## 知识点 根据微信小程序官方文档及 AES-CBC 加密标准,`session_key` 与 `iv` 的长度规范如下: 参数 编码格式 编码后长度(Base64) 解码后长度(二进制) 算法要求 `session_key` Base64 24 字符 **16 字节(128位)** AES-128-CBC 密钥 `iv` Base64 24 字符 **16 字节(128位)** AES-CBC 块大小 ### 2\. 技术说明 #### 2.1 session\_key `session_key` 是微信服务器返回的会话密钥,用于解密 `encryptedData`。其技术规格如下: * **算法**:AES-128-CBC * **密钥长度**:128 位(16 字节) * **传输编码**:Base64 * **编码后长度**:固定为 24 个字符 > **官方定义**:微信官方文档明确指出 `aeskey = Base64_Decode(session_key)` 的结果为 **16 字节** 的二进制数据。任何非此长度的实现均不符合规范,将导致解密失败。 #### 2.2 iv `iv`(Initialization Vector,初始向量)是 AES-CBC 模式下的必需参数,用于增加密文的随机性。其技术规格如下: * **算法**:AES-CBC * **块大小**:128 位(16 字节) * **传输编码**:Base64 * **编码后长度**:固定为 24 个字符 > **官方定义**:`iv` 的解码结果必须为 **16 字节**,否则解密接口将返回 `IV not 16 bytes long` 错误 这里显然不符合 我们直接对小程序进行反编译 这里我使用无影  反编译后,来到源码的文件夹,打开claude,让他来分析 (之前听过一节某大师傅挖掘银行众测的课有个漏洞就是这个,但是他是通过手写脚本手动分析逻辑进行加解密的,ai出来之后迅速拉进了我们和大佬打差距)    这里可以看到,这两个值确实是经过二次处理的,逻辑已经很清楚了 这个时候我们就已经可以给他手机号让他重新加密然后任意用户登录了 但是需要考虑考虑扩大危害 反编译之后这里泄露了两个手机号  对这两个手机号进行登录尝试,结果真有一个是有管理权限的 让ai对这个手机号逆向加密回去  我们直接复制加密后的内容来到登录处进行替换  然后放包,直接进入小管理员的后台   这里继续扩大危害  点击公寓管理  点击学生搜索抓包  可以看到手机号 这里我们可以通过控制这两个参数  对学校3w条学生的手机号进行查看,从而造成3w用户的账号接管 继续查看  点击,具体信息进行抓包,可以看到更详细的信息   这里依然看不到敏感信息,但是这是一种很常见的情况,后端返回很多信息,但是前端渲染一部分 我们抓包查看  直接泄露了sfz,也就是说,通过这个能获取,全校3w多条sfz信息,危害加一。
xiaodi
2026年7月1日 14:47
24
0 条评论
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档
PDF文档(打印)