首页
社区
课程
招聘
[原创]快递 100 小程序接口安全分析笔记
发表于: 2026-4-29 21:36 2320

[原创]快递 100 小程序接口安全分析笔记

2026-4-29 21:36
2320

接口:GET /apicenter/kdquerytools.do?method=userinfo4queryresult

请求方法:GET

关键参数:

num=YT886***5838——业务参数

openid=ocNgX***PkZE——微信用户的唯一标识,同一个用户在不同的程序下都不一样,长期有效

Token=XC6428***dde6_V2——鉴权令牌

platform=WEIXINAPP——客户端标识

apiversion=28——接口版本号

修改前的:

修改后:

3.3.1全量剥离测试(验证鉴权是否强制)

方法:

URL 参数:删除 Token、ssotoken、logintoken、Openid、unionid

Headers:删除 Openid:、Token:

结果:

返回200 OK,data字段为null

结论:

3.3.2令牌篡改测试(验证token检验的严格性)

方法:

修改以下两处为无效值:

URL 参数 Token=12345

Header Token: 12345

结果:

分析:通过截图可以看到,修改后返回的仍是详细信息。但我仅修改了 Token,还存在另外两个有效凭证:

分析:

快递 100 的后端逻辑是“只要有任意一个有效的凭证(ssotoken 或 logintoken)就放行”,而忽略了被改坏的 Token 参数。 删除这两个参数后,返回的仍是详细信息,猜测服务端可能仅认 Openid(因其难以伪造)。

验证想法:

删除 URL 和 Header 中的 Openid 参数,结果如下:

data 返回 null。但这不能直接说明 Openid 是鉴权核心,因为此时 Token 是无效的。删除所有 Token 相关参数,仅保留 Openid,结果如下:

删除所有 Openid 并保留正确的 Token:

返回详细信息。结论:后端采用“或(OR)”逻辑,只要任意一个凭证有效即放行,缺乏双因子绑定校验。

方法:每次只删除一个参数,其他保持不变:

删除 platform

结论:平台标识未校验

删除 apiversion


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回