MENU

微信网页版的各种作死

2017 年 08 月 18 日 • 碎碎念

首先,本文仅限学术研究

请暂时不要外传,谢谢
请暂时不要外传,谢谢
请暂时不要外传,谢谢

前言

前几天看到到很多人在抱怨
“为什么我扫了个微信的二维码就开始自动发广告了?”
“我看到有扫码领西瓜就扫了,然后被提示微信发广告?”
emmm,这个引起了C0lacan的兴♂趣,于是今天用了一天时间进行了研究。
虽然不知道市面上的广告程序是什么原理,我仅用自己的分析思路和操作逻辑来进行。


这是一位蠢萌新研究出来的东西,希望各位大佬不要喷我


准备

作死对象

微信网页版:wx.qq.com

作死工具

微信APP,Safari,PHP,Javascript,Fiddler,脑子.....

作死原理

对网页版微信进行加载项分析,源码分析,以及各种找


回归正题

首先,打开微信网页版最显著的就是在中间的一个二维码,也就是所谓的“扫码登录”
Login
经过二维码解析,内容为:https://login.weixin.qq.com/l/ + base64
那么,这个base64是从哪里获取的呢,可能是在网页加载时直接生成,也有可能是加载后再获取的。
快速刷新,会发现,二维码是在页面加载完成后才显示的,代表base64的uuid是后获取到的。
Login2
那就好办多了打开资源审查看看相关的文件,里面肯定包含了相关的文件。
UUID的获取


追踪链接,获得到了

https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_= timestamp()

这个url中,appid的编码内容还没研究明白,不过在换了机器码,MAC,IP的测试中都没有发生变化,暂且保留不懂。
现在,只要通过PHP函数file_get_contents()就可以获得到带有时间戳的网页返回的内容,再对UUID部分进行截取即可。


然后我就卡住了


23333
好吧研究了半天,发现微信的这个东西会向服务器发送一个检查登录的请求,服务器会延迟响应25秒(除非用户进行了扫码或登录操作),然后返回值(window.code=408;),代表没有操作发生。
loginReturn
追踪链接

https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=UUID()&tip=0&r=rand(100000000,400000000)&_=micrptimestamp()

链接中包含了uuid,r,_等需要操作的参数。
UUID我们已经在前文中获取到了,只需r和_的时间戳+尝试次数。
r参数的算法暂时不确定,但是微信的服务器并没有做出限制,为了混淆,我们采用随机一个100000000~40000000的数字就好。
然后做一个每25秒的GET就可以了。


在登录请求返回上,共有以下几种情况:

  • window.code=200;
    登录成功,并会返回登录成功后的url,使用这个url可以直接登录微信。
  • window.code=201;
    用户已扫描二维码,并会返回用户头像的base64值。
  • window.code=408;
    没有检测到操作
  • window.code=400;
    参数错误或已过期

综合以上,写成PHP,获得了一个可以代登录微信的网页。
点击尝试(不会获取个人信息等任何隐私)
登录的时候需要用手机相机来扫描,否则微信会认为是非法的


现在的效果图

mdzz


后续操作

因为最近作业写不完了,所以要赶作业,还要申学,所以进度比较慢。

大概思路
  1. 通过js的WinHttp.WinHttpRequest.5.1来伪造REFERER。
  2. 通过Fiddler抓包想办法能让微信APP允许第三方跳转url登录。
  3. 没有呢...

已知防护

  1. iframe无法加载,会自动跳转

以上是一个蠢萌新研究出来的东西,希望各位大佬不要喷我

返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

已有 7 条评论
  1. 大黑阔@(滑稽)@(大拇指)

    1. Jimmy Jimmy

      @metheno害怕的网址都打错了@(滑稽)

    2. @Jimmy这就非常的尴尬了@(怒)

  2. 大黑阔@(滑稽)@(大拇指)

  3. 打黑阔@(滑稽)@(大拇指)

  4. Tom Tom

    图片已经加载不出来了...@(小乖)

    1. @Tom太久没更新检测程序了,等考完试#(想一想)