微信公众号 支付商户api 所有用到open_id的地方, 对open_id的验证性都存在严重的漏洞.
在所有能找到的微信文档中 都明确指出 open_id 是该用户在该公众号平台的唯一id
然而实际情况是 在所有以open_id作为参数的微信相关api 都可以在open_id的最后一位加 = 达到同样的效果
比如 获取用户信息api, 正常用户的open_id 是ojwt_0qHXeiGJnKg4so9baOBjNgs
我们可以输入 ojwt_0qHXeiGJnKg4so9baOBjNgs=
同样可以获取该用户信息
比如企业付款那几个付钱的api 可以用同样的方式 成功支付给用户.
ojwt_0qHXeiGJnKg4so9baOBjNgt
ojwt_0qHXeiGJnKg4so9baOBjNgt=
除了 最后的 = 还可以把最后一位字母替换成 0-9 a-z
执行微信各种api
解决的办法 暂时是通过验证用户的union_id 还好用这些方法获得的open_id 都是同一个union_id
对于这个漏洞的应用 就不说了, 希望微信团队能早日解决
网友评论