微信公众号评论刷赞的探索

拉票这种事情,又烦人,主要还显得lowB。当有技术在手,何不另辟蹊径?

最近遇到了需要在公众号下面帮人刷评论赞的需求,在完全懵逼的情况下开启了初步探索。最终的结果是可以远程操控他人的微信账号对任意目标进行投票。想要刷成千上万的……估计还欠点火候,纯属娱乐,不要较真。


STEP.1  突破微信浏览器的封锁以观察点赞机制

无论你是微信移动端,PC端还是web端,你都会面临一个问题:许多微信网页并不能在微信内置浏览器以外的环境使用,打开的话,会没有完整信息,尤其是“评论区”将不显示。如果设法获得了 真·URL(将网页从移动端发送给PC端,再复制进地址栏,恭喜你,你就会面对这个页面:

微信公众号评论刷赞的探索_第1张图片

尝试一:浏览器伪造

我下载了一个user-agent-switcher把火狐的USER_AGENT换成了微信内核浏览器的,然并卵。这个措施只能解决网页禁止访问的问题,但是对内容阉割(无评论区),毫无作用。


尝试二:代理抓包

使用抓包工具Fiddler,设置好connections中的 allow remote computer to connect。手机电脑处于局域网,手机把电脑的IP挂成代理。手机访问目标网页,电脑端的Fiddler即可顺利抓包。

微信公众号评论刷赞的探索_第2张图片


STEP.2  分析点赞的请求机制

猜想一:请求可以无限发送,仅依赖于前端JS(改变Button状态)来限制点赞。账号进入后端就是个字符串,不会查重。

    突破方式:截获请求,重复发送。或者拆分ID,造成注入。

    实验及结果:在重复发送截获的点赞请求数次后,赞量仅+1。推翻了JS限制的错误思路,验证想必是在后端进行的。

猜想二:猜想其后端处理比较随意,会把OpenID或者UIN之类的“匿名”用逗号隔开以存储。那我只要把相应的ID分成多个逗号隔开的串,即可实现一次多投。

   实验及结果:在观察包内信息后,猜测不可取。分隔ID的方式未测试,留给后人。

微信公众号评论刷赞的探索_第3张图片

猜想三:单关键字验证(只需要验证所有字段中的某一个,如果符合要求且未赞过,则可以成功点赞)

    实验及结果:使用两个移动设备,在同一文章下对某评论反复点赞和取消,以获取请求信息。


黄色两个包分别是设备一进行点赞和取消的包,绿色为设备2.经过观察发现:同一设备的不同操作,有且仅有like的值不同,其中取消点赞为0,反之为1(更改为其他值与1等效)。

action:字面意思

scene:觉得没用,没试,留给各位

like:布尔,象征赞或者取消

——biz:为公众号唯一标识

appmsgid到content_id:这三项分别是文章,作者,评论编号之类的

uin和key:和事件有关,不需要改

pass_ticket:一个有时效的token,大约可以用一天,不分账号

wxtoken:名字吓人其实毫无用处,可以随意修改(未深入测试,似乎不影响点赞成功与否及用户识别)

appmsg_token:每次打开页面似乎都会生成的一个token,失效很快,十分关键

其他:均为设备信息及浏览器是否为X5内核(猜测这就是浏览器封锁的手段),无明显用处。


另外,还有两个设备的header信息:


微信公众号评论刷赞的探索_第4张图片

微信公众号评论刷赞的探索_第5张图片


由于移动设备、客户端版本号均不同,所以根据人类基本智商,只关注两者共有部分。

基于基本英语水平,排出lang,devicetype等意义显著的无用项目不讨论。

client:客户端信息,一整个部分都与我们目的无关

Miscellaneus:设备信息,包括机号之类的,羊毛党们的福音

transport:无用

在Cookies项目中,两者差异显著,给我们省了不少事:

rewardsn,wxtoken:看似极其重要的两个字串,修改后均无明显功能,交替使用后也不影响任何功能

wxtokenkey和pass_ticket:两个看似是准入凭证的字符串,修改后无法使用功能,交替使用后不影响任何功能

wap_sid2:对,一个超级长的字符串,无论是修改还是换用,都会导致伪造操作无效。

结论就是,没有任何一个字符串可以单独决定点赞后的功能,有一些改了之后将直接失效,其他的改了之后什么影响都没有……


猜想四:多字符串共同验证

   实验及结论:疯狂修改调试后,得出以下结论,我弄清楚了基本机制:

header中的wap_sid2和表中的appmsg_token成对出现的时候,即可验证用户身份以及进行点赞或取消。再其他所有数据都进行符合格式的修改的情况下,这个结论依然成立。


STEP.3  收获成果及应用

弄清楚了验证的机制:应该是在打开公号时,生成一个时效性的appmsg_token,点赞操作时,作为token使用,以获得进入权。接下来,使用很长的wap_sid2,进行身份验证。出于安全考虑,两者需要成对出现。

不足:后期较为疲惫,对于一些小的字段没有很耐心的修改,当时操作界面也乱得不行了。所以注定还有没有发现的机制。

应用:可以看得出来,微信的安全机制十分到位,但也并非毫无破绽。如果公号主设置一篇文章以及一个小的抓包脚本,用户只需要点一下文章,就可以自愿交出这两条信息。公号主许以一定金额的酬劳,对于爱占便宜的用户这简直是免费馅饼。之后公号主再用这些信息从事刷赞,在小脚本的帮助下,几乎可以做到秒刷千万赞。当然,文章阅读量同理。用户轻松赚小钱,公号主盆满钵满,刷量者心愿满足。



总结:微信还应当设法避免这个,建议如限制非关注号点赞及异常点赞后冻结。


你可能感兴趣的:(Hack)