怎么样强制开电脑微信(绕过51CTO的强制绑定微信)
不知道从什么时候开始51CTO的免费课强制绑定微信才能学了
但我怎么可能为了学一个免费课去绑定微信呢
F12,开干!
打开抓包,点击加入学习
得到四个请求,第三个就是生成二维码的请求了
所以显然问题出在前两个请求上
get-login-mobile经过分析是检查绑定手机号的,跳过,所以问题就在这个wechat-status上
我们很容易盲猜逻辑:检查是否绑定微信,如果不绑定就弹出二维码
把调用拉出来,判断逻辑肯定在加载之后,所以直接从Load往上看
checkBind这个方法名字显然太明显了,直接跳转
好家伙没混淆,注释都在
结合这个api返回的json里面有一个data属性,我没绑定的情况下返回的就是1
这代码显而易见,根据注释就能看出,data为1则弹框,否则就调用callback
那么我们只要让代码顺利的走到callback就行了
在if上下断点之后点击按钮
json的结果就在右侧看到了
把status改成除了1以外的任意数字
然后继续执行
大功告成!
就一个抓包一个断点的难度就想逼我下载注册微信?那必不可能!
阶段2:
每次都要手动断点,不行,太麻烦了,得写成脚本
可是方法被包起来了,怎么办呢?
很简单,ajax请求本质还是xhr,我把所有xhr都给劫持掉不就行了么
(function(open){XMLHttpRequest.prototype.open=function(method,url,async,user,pass){//dosthopen.call(this,method,url,async,user,pass);};})(XMLHttpRequest.prototype.open);
用这段代码可以劫持所有xhr
用github配合jsdelivr做一个返回114514的json,得到地址https://cdn.jsdelivr.net/gh/qinlili23333/PageConnect@master/51ctohook.json
不难写出
if(url.indexOf("wechat-status")>0){url="https://cdn.jsdelivr.net/gh/qinlili23333/PageConnect@master/51ctohook.json";}
发现是检查绑定的api就劫持到我自己搭建的虚假json上
然后你会发现CORS了
得换个办法
转成base64不就行了嘛
data:application/json;base64,eyJzdGF0dXMiOjEsIm1zZyI6IiIsImRhdGEiOjExNDUxNH0=
得到油猴脚本如下
(function(){'usestrict';(function(open){XMLHttpRequest.prototype.open=function(method,url,async,user,pass){if(url.indexOf("wechat-status")>0){url=_"data:application/json;base64,eyJzdGF0dXMiOjEsIm1zZyI6IiIsImRhdGEiOjExNDUxNH0=";}open.call(this,method,url,async,user,pass);};})(XMLHttpRequest.prototype.open);})();