今天听群友抱怨小程序的 bug 才知道的,去社区搜了下,发现有人早发现这个问题了,原文可以点这里: https://developers.weixin.qq.com/community/develop/article/doc/000ae2dd1e0bd0d8efe05a66c66813 总结一下就是,如果你手机自带截图,截取了你当前小程序的图,发给别人,别人点开截图后,下方有个直接进入小程序的按钮
根据群友的信息,这个进入会携带你的用户信息直接进入!直接用你的账号登录了!
1
DreamingCTW 255 天前
"所以这一波损失是真真切切存在的,今天我也主动对这个问题进行了修复,就是在进入激活码生成页 的时候也做了权限的校验,这样保证没有权限的用户即使扫码进入也没法生成正确的激活码"
你确定进去是截图者的权限?那是他自己没有做鉴权。相当于进这个页面之前他判断用户有没有权限,有权限就可以进,但是进到这个页面就不会再进行鉴权了。他截图的页面是无需鉴权的,这个是自己代码逻辑的问题。 |
2
InDom 255 天前
没看懂:
一、如果你手机自带截图,截取了你当前小程序的图,发给别人,别人点开截图后,下方有个直接进入小程序的按钮 iPhone 14 未能复现,打开任意小程序,点开任意页面,截图,然后发送给文件传输助手,在查看图片,未找到“直接进入小程序的按钮” 二、这个进入会携带你的用户信息直接进入 根据我从文中的理解,两种可能:截图有隐含的小程序码,否则通过图片识别是哪个小程序的页面截图难度太大了... 就算实现了前者,截图“隐含水印”中带有用户信息的可能性不大。 如果是隐含小程序码水印特征,那么可以实现,从文中的情况,也没有携带用户信息,只是能直接打开某个页面,开发者自己没有在这个页面鉴权导致的,根本和微信无关,也没有说到携带用户信息的情况。 另外,对这个东西的复现很感兴趣,真的能通过不带小程序码的图片识别是哪个小程序的哪个页面? 最后:不要总想搞大新闻 |
3
DreamingCTW 255 天前
@InDom #2 嗯,我用的 Android ,微信有这个功能,在小程序页面截图,讲截图发送给好友,好友打开图片,下方有直接进入小程序的按钮。ios 不清楚
|
4
abelmakihara 255 天前
不知道这个页面设置是否可以分享
如果不能分享那这确实算一个漏洞啊 相当于变相分享了 当然 没鉴权是他自己的问题 |
5
MonkeyD1 255 天前
为什么我不管在呢截的图 图片上有入口 只能进入首页呢
|
6
abelmakihara 255 天前
如果本来就能分享 没这个他也能触发鉴权漏洞啊
帖子里看起来似乎是可以分享的 |
7
967182 255 天前
我给别人分享的小程序,打开以后看到的是我的账号下内容。。。。。
|
8
justfindu 255 天前
没法复现么
|
9
cJ8SxGOWRH0LSelC 255 天前
这纯粹是作者自己的问题, 不管是什么权限校验都不应该在 ui 层去判断啊, 而且还只在一个界面判断了, 跳过这个界面就绕过了, 这漏洞也太大了。
这次他修改了,也是治标不治本, 看的出来他只是在生成激活吗的页面又加了判断, 逻辑还是在 UI 层, 都不和服务器交互生成激活码, 这也太容易破解了吧。 |
10
6F321i77Df1W0Zka 255 天前
怎么复现,我是安卓。没法复现
|
11
zzxqd 255 天前
@StinkyTofus 如果是原帖说的,没有在特殊的页面上做权限验证,而且只在前端验证那确实有问题。
不过进入会携带你的用户信息直接进入是什么意思?是截图人的账号信息么?应该不可能吧,是不是页面链接地址上携带的有当前登录人的信息,导致分享出去的页面地址直接进去就是分享人的账号信息。 |
12
pianjiao 255 天前 via Android
这不是新加的功能么,微信能识别小程序截图
|
13
zzxqd 255 天前
感觉应该是分享时的地址链接里自带有当前人的身份信息,导致后续不管是谁通过截图的链接人直接就是分享人的信息。
还以为真有啥大新闻,还是开发者自身的问题。 |
14
Yesr00 255 天前
确定是小程序的问题不是开发者自己留的 BUG ??
|
15
fionasit007 255 天前
可能是进到小程序的一个子页面然后截图发给别人,别人点击图片进到当时那个子页面,好像小程序分享页面好像会记录这个页面的操作,比如说筛选啥的,分享出去别人看的还是这个筛选结果,可能就是这里把一些不需要登录验证的数据给泄露了,不知道我想的对不对
|
16
ysc3839 255 天前 via Android
这感觉类似小程序菜单里的复制页面链接?
|
17
scarecrowlxb 255 天前 via Android
@zzxqd 没看贴,看评论区的描述我可能的原因:
分享时生成的链接作者加了个用户 id 之类的参数,其他人打开链接时作者直接用链接中的用户 id 参数来判断登录用户。 |
18
me1onsoda 255 天前
根据群友的信息,这个进入会携带你的用户信息直接进入!直接用你的账号登录了!
你确认吗?看他描述并不是 token 泄露了 |
20
QAZXCDSWE 255 天前
糟糕会错地方了,尴尬
|
21
fionasit007 255 天前
再补充一下这个实际算是那个帖子的楼主自己的错误,这个邀请码是只要进来就可以刷新,根本没有判断权限,但是需要从去正常验证过权限的页面进去,不过小程序分享就是分享当前页,所以造成了这个问题,相等于我分享我登录后的个人信息页地址给你,你可以进去但是不会重定向登录页,这个“携带你的用户信息直接进入”并不是这样的,你有点误解了
|
22
twofox 255 天前
他自己的问题吧?我用了 IT 之家的小程序测试了一下 ,是没有办法绕过鉴权的
|
23
gitreny 255 天前
这不是他自己的问题吗 只能说他的小程序有问题
|
24
maemolee 255 天前 1
什么啊,就是某个小程序安全做的不行呗😮💨
|
25
latifrons 255 天前
什么啊,就是绕过了首页鉴权直接空降到了邀请码发放页面,小程序的分享功能可以直接分享邀请码页面的 URL ,自己的问题,怪不了别人
|
26
flyqie 255 天前
不要想搞个大新闻。。。你管这叫"超级后门,提权神器"也太标题党了
原文里面都说了`因为我当时做这个功能的时候是通过入口控制的,如果存在权限,会展示这个入口,但是从入口进入之后就不做权限控制了` 很明显跟微信没半毛钱关系,谁们家线上用 path query 等玩意做鉴权。 |
27
tanranran 255 天前
你这明显是没有做鉴权导致的,假如从右上角复制链接,也会有这种问题
|
28
INW017bzMfgkkYGn 255 天前
后台肯定不是 JAVA 写的,一个鉴权拦截器就搞定,出来怪微信。。
|
29
leaflxh 255 天前
"因为我当时做这个功能的时候是通过入口控制的,如果存在权限,会展示这个入口,但是从入口进入之后就不做权限控制了,
正常情况下,这种逻辑不存在啥问题" 我:黑人问号.jpg |
30
Richared 254 天前
没人在前端做鉴权吧。。。。
|
32
mht 254 天前
激活码应该接口生成并且校验,前端是不可信的。
|
33
cJ8SxGOWRH0LSelC 254 天前
@zzxqd #11 不想多说, 你看看其他层的评论吧, 应该能看懂
|
34
zzxqd 254 天前
@StinkyTofus 中间换行了,上半部分是表示同意你的看法,所以是对你的回复。下边是对发帖者重点部分的反问,不是我没看懂发帖者的意思。
|
35
hihanley 254 天前
标题党
|
36
keller 254 天前
应该是把用户 id 之类的参数放在了 url ,然后相关的页面和接口也没有做鉴权直接拿 url 里面的 id 发起了业务
|
37
keller 254 天前
典型的设计缺陷
|
38
dongtingyue 254 天前
为啥我的微信不能识别小程序截图?
|
39
korvin 254 天前 1
三方小程序开发人员的锅,微信不背😂。路径上带类似用户编号的信息,服务端也不做鉴权,就给返回数据
|
40
Dongxiaohao 254 天前
所以后端在生成激活码的时候难道不鉴权吗,感觉挺奇怪的问题。。。
|
41
milukun 254 天前
我的理解是,他有个页面可以生成用于销售的“兑换码生成页面”
然后这个页面他是用什么方式隐藏起来的,只有自己账号能看到入口能进去“兑换码生成页面” 但是呢,微信出了一个新功能,根据截图识别进入小程序 导致“兑换码生成页面”多了一种进入方式,进而导致的损失 问题在于作者偷懒没给“兑换码生成页面“做鉴权 另外,自己做一个“兑换码生成页面”很正常。我自己的网站也有快速给用户充值的页面,但是肯定必须是我的账号才能进啊,而不是得到 url 的都能进,然后自己搞个很复杂的 url 路由企图避免其他人猜到地址(这样很蠢啊) |
42
encro 254 天前
但凡有点后端开发常识,
也知道这是不可能的。。。 是小程序开发者的坑不是微信平台的坑。 因为 page path 里面带了相关信息,小程序前后台没有做验证呗。 |
43
kenilalexandra 254 天前
鉴定了是标题党,你给自己的小程序只做了登陆验证,然后登陆后的功能都不需要鉴权这不摆明了是你自己的问题?
|
44
caiqichang 254 天前
随便测个小程序 中国移动的 不会带入用户信息,op 自己没做好罢了。比如用户信息的 token 放在 url 而不是请求头
|