1
ThisQ 2020-09-30 12:30:15 +08:00
我觉得没戏,openid 是服务器针对不同的公众号来生成不同的 id 的,如果给改掉之后应该就找不到对应的关系了。
|
2
noe132 2020-09-30 12:31:14 +08:00 via Android
理论上同一个用户,不同应用获取到对该用户的 openid 不保证一致
|
3
wxsm 2020-09-30 12:31:39 +08:00
一个 openid 是对应一个用户的,wx 通过它能知道你是谁,伪造的 openid 要怎么跟用户对应上呢?
|
4
QUIOA 2020-09-30 12:31:55 +08:00 via Android
是不是想搞刷赞刷票呀
|
5
Rekkles 2020-09-30 12:33:21 +08:00 1
|
6
reus 2020-09-30 12:34:33 +08:00
用汗毛想都知道不可以
|
8
kop1989 2020-09-30 12:39:26 +08:00 1
可以伪造,只要绕过二次跳转获取 code 》拿到 openID 的逻辑即可。
但按照你的描述,“某 openID 只能扫固定的某个二维码”。说明其系统中有 openid 与二维码链接的对应关系验证。也就是说你瞎填一个是不行的。必须得是符合其其他二维码对应关系的 openID 才行。 然后基本上就无解了。因为无感获取其他人的 openID 需要其在其的微信浏览器中获取一次性 code,附加 appid 与 appsecret 才能获取到。第三方技术服务的 appsecret 你是 100%拿不到的。 完结。 |
9
zhiyzellda 2020-09-30 12:40:28 +08:00 via Android
查了一下什么是 hook,我想说,这个关键要看是微信本地判断或是服务器端判断,服务器判断的话,你没有人家服务器的 root 密码,怎么 hook ?
他可能直接把 openid 传给服务器进行登记。根本不存本地。 |
10
litaomn OP @kop1989 网页通过 snsapi_base 获取 openid,第三方应该不知道这个 openid 是不是合法的,获取到 openid 后,将 openid 随意改造一下,是否就可以突破呢
|
11
kop1989 2020-09-30 12:58:17 +08:00
@litaomn #10 确实可以改造 /替换,就诸如我说的。
但是第一,openID 不连续,第二,根据你的业务描述,openID 与二维码有关联关系。 所以除非暴力穷举所有 openID,否则做不到你说的“拿到所有二维码”这种结果。 |
12
kop1989 2020-09-30 12:59:51 +08:00
@litaomn #10 换句话说,其实聊到业务破解,就跟 openID 无关了,你完全可以通过直接爬接口灌参数的方式拿到二维码 。
|
13
yushiro 2020-09-30 13:07:31 +08:00 via iPhone
请看微信的文档,只要按照文档来,你是不可能拿到 openid 的,与 web 端无关。
|
14
lucifelx 2020-09-30 13:25:12 +08:00 via Android
openid 泄露与被伪造都没有任何影响,因为后端是向微信服务索要的 openid,只要客户端换取 accesstoken 的过程能保证安全,那么后端取到的 openid 必然是正确的。(大概这个意思,有段时间不做 wx 开发了)
|
15
litaomn OP 感谢各位大佬解答,死了这条心了
|
16
d5 2020-09-30 13:59:56 +08:00
openid 无法伪造,但是有些场景分析包,可以提供仿冒的 openid
|
17
KingPL 2020-09-30 14:24:20 +08:00
正常 只是 code 传到后台,后台校验拿到 openid 再返回一个 sessionId 到前端完成绑定,openid 不会放到前端...
|
18
keepeye 2020-09-30 14:30:48 +08:00
不行
|
19
masker 2020-09-30 14:41:53 +08:00 via Android 2
哇!那微信钱包的钱不也可以自己加 0 了?
|
20
linuxvalue 2020-09-30 15:46:43 +08:00
想多了
|
21
killergun 2020-09-30 16:27:24 +08:00
这要是能伪造,微信程序员可以下岗了
|
22
quan01994 2020-09-30 16:29:49 +08:00
不能伪造,但是你可以获取啊,你可以网上买一波微信号,用于获取 openId 。
|
23
levon 2020-09-30 16:46:27 +08:00 via iPhone
能不能伪造跟你写的程序有关
|
24
annielong 2020-09-30 18:02:52 +08:00
看程序了,获取 openid 这个是没法伪造的,但是第三方程序不一定会验证这个是否合法,
|
25
newmlp 2020-09-30 18:09:31 +08:00
去看看微信开发文档就知道了
|
27
EminemW 2020-09-30 20:31:50 +08:00
openid 是微信提供一个 token 给后端,后端在通过这个 token 与 appid 向微信服务器请求拿到 openid 。所以你破解方向不应该是 openid,
|
28
kop1989 2020-09-30 21:47:22 +08:00 1
@yepinf #26 不需要获取 code,因为 lz 的最终目的是编造非本机主的 openID 。说白了就是绕过 openID 获取机制而已。和 hack 微信的 openID 获取机制其实无关。
|
29
ebony0319 2020-09-30 23:09:29 +08:00 via Android
理论上不行,但是我见过黑产突然一下子(一两秒)一个地址多出十多万微信刷票,不知道怎么弄的。
|
30
zhiyzellda 2020-10-01 08:22:23 +08:00 via Android
@ebony0319 他自己就是內部員工吧,內鬼搞得。或者是內部人在黑市裡出售了工具。黑市用了 Tor,所以鵝厂高層也不知道是誰。
|
31
xuanbg 2020-10-01 10:23:49 +08:00
虽然一个用户有多个 openId,但这些 id 是和公共号一一对应的。你伪造的上哪里去对应?对不上就拿不到用户身份,就没法通过验证。
|
33
eudore 2020-10-01 13:51:31 +08:00
可以伪造 openid,前提是你可以破解 hmac 的非对称加密。
|
34
ESeanZ 2020-10-09 10:09:39 +08:00
自己写一个微信服务不就好了吗?切图仔一个 想着自己手动写一个获取 openid 的服务(open_weixin_qq_com/connect/oauth2) 路由器吧域名解析到自己服务器上应该就可以了吧?
|