绕过限制,在PC上调试微信手机页面
场景
假设一个手机页面,开发者对其做了限制,导致只能在微信客户端中打开。而众所周知手机上非常不利于调试页面,所以需要能在电脑上打开并进行调试。这里针对常见的三种页面做一下分析,一一绕过其限制,(当然不要拿去干坏事)
工具准备
- 方便调试的浏览器。个人喜欢Chrome,本文基于Chrome 43.0.2357.130 (正式版本) m (32 位)环境。
- 抓包工具,推荐fiddler4,当然你比较喜欢Wireshark的话也可以,反正只要是能抓到cookies就都可以
- 能编辑cookies的浏览器插件。Chrome下我推荐EditThisCookie,Firefox的话试用Firebug自带的编辑功能即可
更新
更新于2016-04-05,针对第三种要openid验证的页面
没想到这文竟然会是我blog的最大流量来源= =
由于时间进入2016年,调试工具已经大大升级,所以我更新下个人比较推荐的更具有普适性也更简单的方法:
- 安装微信的PC版
- 打开
fiddler
,然后在微信PC版里打开要调试的页面(一般会弹出授权窗口,确定即可),接着在fiddler里找到进入后的实际页面的cookies - 打开要调试页面的任意主页,如要调试
www.aaa.com/mobile/xxx.php
的页面的话,就跳转到www.aaa.com
首页,然后按照第二步抓到的页面的cookies,一个个填给chrome即可。(之所以要跳到首页去填是因为该域名下没有其他更容易编辑cookies的页面了)
PS:复制以及更改cookies的具体步骤可以参照下文第三部分的第3-6
几个步骤(虽然有些人推荐微信官方调试工具,但是个人认为对非开发者来说这个工具不是必须的,而微信的PC端、fiddler和chrome浏览器则是可以常备的。另外加上内置的chrome调试工具远低于正常版本,所以推荐度不如微信PC客户端)
更新于2015-10-12,针对第三种要openid验证的页面:
除了原先上文提到的抓包取cookies方法外,现在其实还有更简单的办法,利用微信官方的tbs调试。
最简单的办法就是安装QQ浏览器最新版,然后利用内置的微信调试工具,可以省掉很多麻烦。具体步骤省略。
不喜欢用QQ浏览器的话,可以利用官方的tbs插件加上本地inspect的办法,可以参考此文:
微信、手Q、Qzone之x5内核inspect调试解决方案
不过这个方法我个人并没有尝试过,因为感觉配置过程过于麻烦。
绕过方法
这里针对常见的三种限制方法做了分类(不过我感觉应该也没有第四类了),其绕过方法难度也是逐渐递增的。下文将从确认限制方法
以及绕过限制
两个角度一一分析。
未做明显限制
例子:翻滚吧小洛克
这种页面最多,基本上就是相当于啥也没做。
检验方法
手机里其他浏览器也可以打开页面并正常进行页面浏览
这种页面在PC上调试只需要开Chrome的模拟器即可。
绕过方法
- Ctrl+Shift+I打开chrome的
开发者中心
- 点击开发者中心工具条右上角的手机小图标,如图:
3.如果发现不能模拟触屏,则是因为设置里没开,点击开发者中心工具条右上角的箭头小图标,然后Emulation
>Sensors
>Emulate touch screen
,将该选项勾上即可。如图所示:
轻松过关。
检查UA来限制
例子:多泡游戏-doNotTouchWhite
由于这个站点游戏需要登录,所以放个公共号测试用,勿滥用。
user:duopaotestdada
pwd:duopaotest
|
检测方法
手机浏览器打开后会跳转到开发者自己的其余页面,或者有弹窗提示,但是不会跳到
open.weixin.qq.com
域名去。
看着这种就可以肯定十有八九是基于UA(UserAgent)检测了。所以破解方法很简单,模拟UA就好。chrome内置了这个功能。
绕过方法
- 开启浏览器的模拟器(方法见上)
在模拟器右上角的
UA
处将以下UA贴进去并重新进入原页面(不直接刷新是因为有些页面会根据UA做跳转)Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Chitanda/Akari) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/6.0.0.58_r884092.501 NetType/WIFI如图:
以上是安卓手机微信的UA,另附一个iOS下的UAMozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI一般情况下这两个用处都一样,没啥区别,实际上根据大部分前端的习惯,哪怕UA里只填一个
MicroMessenger
字段都是可以绕过去的。- 上面的方法虽然可以绕过限制了,但是终究不方便,每次都要手动改一次UA。实际上较新版的Chrome浏览器是可以自定义
Device
的。点击开发者中心右上角的齿轮图标,然后Devices
>Add custom device
,即可自行添加一个带微信UA的模拟器,然后之后在模拟器界面的Device
里切换即可。如图:
利用微信oauth做限制
例子:拯救太平轮
由于上面的游戏链接已经失效,所以换个页面,类型一致,可供各位测试用:幸运大转盘
上面两种都是比较常见而且简单就能绕过限制的,而有些对用户身份验证要求比较高的页面,则会利用微信的OAUTH
来拉取openid
做验证,这种就不仅仅是改UA这么容易绕过去了。好在也不是无解。因为身份验证一般都是存在cookies
里的,所以我们可以直接给PC模拟器伪造cookies来让页面误以为我们是在微信内做的验证。
PS:
这里是通用方法,不过目前针对微信内的页面,微信官方有提供调试支持,可以查看更新的内容
检测方法
手机浏览器打开后会跳转到open.weixin.qq.com
域名,且页面提示请在微信客户端打开链接
.
如图:
绕过方法
- 将浏览器UA改为微信的,然后刷新页面,会发现这个时候不再提示
请在微信客户端打开链接
了,但是整个页面一片空白。 打开fiddler,并设置手机wifi连接,确保手机数据都经过了fiddler。
在微信里点击页面链接,使其正常进入页面,然后fiddler上注意相关域名的记录,找到
Tunnel to open.weixin.qq.com
后面那条记录。会发现这时候原来的链接带上了oauth
参数。复制这时候的链接
如图:在浏览器中打开前面复制的链接,会发现还是白屏,然后右键页面,选择
EditThisCookies
,会发现这个页面下有两条cookies了。也可以在开发者工具的
Resources
>cookies
>wxoauth.wucai.com
里查看当前页面拥有的cookies数量。之所以前面不自己直接创建cookies就是因为cookies除了Value
这个属性外,还有Domain
、Path
、Expires/Max-Age
等等其余属性需要设置,而这些属性自己是摸不出来的,只能先依靠页面服务器创建,然后直接更改Value
即可回到fiddler,还是刚刚选择的链接,右边窗口选择
Headers
,然后会看到下面有两条cookies,以及对应的数值。选中一条,然后右键Copy Value only
,将值复制到前面浏览器里打开的EditThisCookies
页面中去。如图:需要的注意的是,这里复制出来的是
cookies名称
+cookies值
的方式,而EditThisCookies
里只需要填cookies值即可,所以复制进去后记得将cookies Name =
这一部分删掉。如下图所示,绿框里的PHPSESSID=
是不需要的,删掉即可.如图:重复第五步,将全部cookies值都改完之后,回到之前的浏览器页面,输入最初的主页链接,成功。
在微信里的话,认证页面完成后一般是有跳转的,不过由于这里是手动更改的,所以没办法触发跳转,需要我们手动模拟一次。而前面的cookies在的缘故,页面服务器也会当我们已经认证过,所以就直接跳过了。最后成功的截图:
完成,看起来很复杂,其实也很简单。个人感觉这个过程最麻烦的地方其实在于第2步:手机连fiddler需要先断开之前的无线,手动输一次代理设置到wifi,然后再连接下。所以我觉得现在最需要一个安卓下可以存储wifi代理链接设置的工具= =
某些小问题
进去后有部分功能无法正常使用
有时候会发现即使页面正常进去了,也有些功能不能触发,比如上传图片之类的,但是浏览器也没有报错。这种情况下一般多是由于对方使用了微信的jssdk内置方法(wx.xx
之类的)。因为微信内置的方法不是纯webview可以完成的,很多功能都需要微信客户端的配合,因此达不到预期的效果也是很正常的。可以看微信jssdk的官方demo,你会发现基本上没一个可以在PC上用。
其他的,想到再补充吧。
绕过限制,在PC上调试微信手机页面的更多相关文章
- 在PC上调试微信手机页面的三种方法
场景 假设一个手机页面,开发者对其做了限制,导致只能在微信客户端中打开.而众所周知手机上非常不利于调试页面,所以需要能在电脑上打开并进行调试.这里针对常见的三种页面做一下分析,一一绕过其限制,(当然不 ...
- 使用微信web开发者工具调试微信企业号页面(前端页面,已发布在服务器上的)
前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是做一个记录,方便自己以后使 ...
- 让你在PC上调试Web App,UC浏览器发布开发者版
目前,在手机上使用浏览器访问网页,无法便捷地进行网页语言调试.手机屏幕相对较小且操作不便,直接在手机上进行网页数据调试不太现实. 因此,UC使用技术将手机网页调试信息分离,实现一种能在大屏幕.高配置P ...
- 使用Fiddler代理调试本地手机页面
从事前端开发的同学一定对 Fiddler 不陌生,它是一个非常强大的http(s)协议分析工具.我们知道如何在电脑上调试页面请求,但在手机端你没有这么多强大好用的调试工具来调试你的webapp,如果你 ...
- 使用 Fiddler 代理调试本地手机页面
文件下载:http://files.cnblogs.com/files/dtdxrk/fiddler4_4.6.2.0_setup.rar 从事前端开发的同学一定对 Fiddler 不陌生,它是一个非 ...
- c#pc上测试微信端企业公众商城个人中心链接的工具JMeter
工具 Apache JMeter 抓包工具,支持回放功能 安装JMeter http://jmeter.apache.org/download_jmeter.cgi 下载页 下边是下载链接 h ...
- 开发ProxyServer的时候如何在一台PC上调试
为了测试在真实的网络环境下你的ProxyServer性能如何,而你手头又只有一台电脑,怎么办? 打开你的ProxyServer(我用java写的,因此ProxyServer的进程是javaw.exe) ...
- [WINCE|VS2008] 用在PC上调试WINCE程序
http://www.danielmoth.com/Blog/deploy-to-my-computer.aspx 作者:The Moth 步骤: 1. 在VS2008中打到 Device Optio ...
- 如何用 fiddler 代理调试本地手机页面
最近在做移动端的页面,但是移动端的调试很蛋疼.虽然说 90% 的功能都能用 chrome 下的模拟器来模拟解决,但是剩余的 10% 却只能在真机上调试.比如说一两个像素的误差,比如说只有真机上才能重现 ...
随机推荐
- SharePoint 数据库管理-PowerShell
1. 显示所有SharePoint数据库 Get-SPDatabase –ServerInstance "SP2010\SQLSharePoint" 2. 获取指定的数据库 $da ...
- L238
Betty was offended because she felt that her friends had ignored her purposefully(deliberately) at t ...
- Java不同场景oom错误探究及解决办法
1.OOM for Heap=>java.lang.OutOfMemoryError: Java heap space 分 析 此OOM是由于JVM中heap的最大值不满足需要,将设置heap ...
- BZOJ4403: 序列统计【lucas定理+组合数学】
Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取模的结果. Input 输入第一行包含一个整数T,表示数据组 ...
- .NET/C# 项目如何优雅地设置条件编译符号?
条件编译符号指的是 Conditional Compilation Symbols.你可以在 Visual Studio 的项目属性中设置,也可以直接在项目文件中写入 DefineConstants ...
- Lists.transform的使用
转自:https://blog.csdn.net/weixin_42201566/article/details/81513769 Lists.transform:能够轻松的从一种类型的list转换为 ...
- test20190324 树
题意 树(tree.cpp/c/pas) [题目背景] 这道题标算在评测机上的时间约为自己电脑的2/3 [问题描述] [输入格式] 共 n+2 行.第 1 行 1 个数,n. 后面 2-n 行,每行两 ...
- 【转】python3中bytes和string之间的互相转换
问题: 比对算法测试脚本在python2.7上跑的没问题,在python3上报错,将base64转码之后的串打印出来发现,2.7版本和3是不一样的:2.7就是字符串类型的,但是3是bytes类型的,形 ...
- 辅助字符串处理类:org.apache.commons.lang3.StringUtils
api 地址:http://commons.apache.org/proper/commons-lang/apidocs/index.html?index-all.html StringUtils 常 ...
- bzoj2467生成树
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2467 大水题. #include<iostream> #include<cs ...