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