微信朋友圈投票活动的刷票案例分析

现阶段,在微信朋友圈举办的投票活动层出不穷,相信已经有不少同学对此不胜其烦,因为总会时不时地冒出个人(亲戚、朋友、or whatever)来请你帮TA投票。

本文倒没有打算从道德或者情感层面来探讨这个问题,我所感兴趣的是,当前大多数投票活动其实都是存在明显漏洞的,通过简单的技术手段就可以实现“刷票”。

案例描述

这里就有一个案例。

某美发网上商城(以下简称S商城)在微信平台上举办了一场在线投票活动,微信用户可通过活动链接访问到投票页面,对喜欢的发型师作品进行投票;每个微信帐号每天只能给单个作品投1张选票。

投票活动页面如下图所示:

漏洞分析

表面上看,S商城已经对投票活动进行了反作弊处理,因为限制了每个微信用户每天只能投一张票。如果用户都是正常地通过微信访问这个投票服务进行投票的话,的确是能起到预期效果的。

然而,如果查看投票页面的原始地址,即按住页面向下拖动,会发现屏幕顶端显示为”本网页由XXX提供”,需要注意的是,这里的”XXX”并不是”mp.weixin.qq.com”,而是S商城的域名。也就是说,这个投票活动的程序是运行在S商城的服务器上面的。

基于以上分析,可以推断出用户投票操作的网络拓扑结构示意图应该是这样的:

微信用户访问投票页面时,微信服务器只是进行了请求转发,具体的投票计数与校验都是在S商城的服务器上的。

那么,S商城是怎么来区分投票用户的呢?

这里就涉及到微信公众平台OpenID的概念了。官方对OpenID的解释是:加密后的微信号,每个用户对每个公众号的OpenID是唯一的。

要验证这一点也很容易,只需要通过采用多个微信账号进行投票,并对投票过程进行网络抓包,查看POST中的参数就可以证实。

基于这一点,微信公众平台在转发投票请求时,会在POST参数中包含用户的OpenID;S商城在接收到投票的POST请求后,通过查询当前OpenID是否在当天已经投过票,就可以阻止单一用户重复投票的行为了。

然而,这里面却存在一个很大的漏洞!

S商城只能判断OpenID是否出现了重复,但是却无法校验OpenID的有效性,因为它是无法调用微信服务器来对这个OpenID进行校验的。

VoteRobot实现

明确了这个漏洞后,要实现刷票就很简单了。

  • 采用微信用户正常地进行一次投票操作,对设备进行网络抓包,获取到投票过程中HTTP层面的请求参数和响应内容;
  • 使用Fiddler(或Python脚本)构造投票的HTTP POST请求,保持各参数与真实投票时抓取到的参数内容一致;
  • 随机生成不同的OpenID参数,重复进行POST请求。

如果要实现批量刷票,或者刷票自动化操作,那么就可以将刷票请求通过Python脚本来实现;甚至,采用LoadRunner也是可以的。

运行VoteRobot.py,输出日志如下:

======== Start to vote zpid(38), Total votes: 3
1 tickets has been voted, the next ticket will be voted after 35 seconds.
2 tickets has been voted, the next ticket will be voted after 31 seconds.
3 tickets has been voted, the next ticket will be voted after 10 seconds.
======== Voting Ended!

需要注意的是,通常自动化刷票时最好有个随机的时间间隔,并且,最好能动态模拟不同的设备,即修改User-Agent,否则,服务端可以较为容易地识别作弊行为。

作弊与反作弊?

看到这里,也许有的同学心中窃喜,以后投票都可以采用这种方式“刷票”了么?

很遗憾,当然不是。

其实本文中案例的漏洞是很低级的,只是,当前的确还存在不少比例的投票活动是采用这种模式。

要判断一个投票活动是否可以采用这种方式来作弊也很简单。采用本文中的方法,若查看到活动的网址是非微信官方的,而且整个投票过程也没有额外的校验,那么实现作弊的可能性就很大了;再通过抓包看下通讯交互过程,并用网络请求工具修改参数后重新请求下,即可验证是否真的可以作弊了。

另外,也许有人想问了,网络中的投票活动就没法杜绝“刷票”行为了么?

答案是,完全杜绝的确很难。听说过12306的黄牛党没?听说过Apple Store专业给应用刷榜单的没?听说过“网络水军”、“五毛党”没?

不过,活动举办方可以通过一些手段,大大提高作弊的门槛。例如,当前有不少活动就采用了如下方式:

  • 要求投票用户先关注活动举办方的公众号,然后调用微信官方的投票功能;
  • 要求投票用户在投票活动举办方的网站上进行注册(手机号验证、实名验证)

不管采用这两种方式中的哪一种,本文中的“刷票”方法就完全失效了。

时间: 2024-12-20 14:49:38

微信朋友圈投票活动的刷票案例分析的相关文章

Android实现分享内容到微信朋友圈

原文地址:http://yanwushu.sinaapp.com/android_wechat_share/ 由于需求,要实现在应用中实现分享文字+图片到微信朋友圈.在网上找了一些资料,总结如下: 思路 1.使用android的intent实现应用程序之间的通信,将信息通过intent传递给微信(文章后面资源链接中有案例).这种方式的局限性在于 a.只能发送图片,而不是(文字或者图片+文字). b.设备必须安装微信才能实现分享. 2.使用微信的官方sdk包,实现发送文字+图片发送到朋友圈.这种方

微信朋友圈最新赚钱模式“本地生活信息分享

微信赚钱大家应该不再陌生了,最常见的就是微信朋友圈卖面膜,化妆品了.一个上万块钱的诱惑吸引了不少人.当然,也有好多都知道这只是变形的"xx"自拍,自夸,自打款的方式来欺骗别人加盟.卖的不是产品,只是为了收下线.不管微信卖什么,大多用的都是用这种模式.今天邵连虎博客就给大家分享一个利用分享本地生活信息挣钱的案例. 前段时间,邵连虎写了一篇文章.这篇文章就详细的介绍了这个案例的内容.从那以后有几个月的时间了,这几个月中我的发现微信朋友圈有更多的人发布这种信息了.我不明白的是,这种模式根本没

微信朋友圈营销快速加好友技巧大全

随着微信对公众号的限制,朋友圈营销越来越受商家重视,而朋友圈的曝光量取决于你的好友数量.为此本人经过多个月的实践和潜心研究,把几乎所有可以加好友的方法都试验了一遍.希望对正在做朋友圈营销,为个人微信号加好友而犯愁的朋友有个帮助.以下方法堪称当前微信个人号免费加好友技巧大全. 前言:请做朋友圈营销的朋友注意了,千万不要整天发广告,这样就算加再多的好友也是没用的,辛辛苦苦加了几千个好友,结果一个个都把你朋友圈给屏蔽了,即浪费时间又浪费感情.建议多发一些生活的照片或随想,或者转发一些对用户比较有价值的

高德寻宝嘉年华H5游戏为何被微信朋友圈封杀?

9月22日,高德地图"高德好地图导航好声音"发布会上推出一个高德寻宝嘉年华的活动,该活动将送出16辆Smart汽车及3000万元油卡,还有价值3000万元的流量包等大礼.发布会现场不但请到了声音嗲.外形甜美的林志玲,周星驰的"御用"国语配音师石班瑜也受邀到场.在火爆的现场气氛中,林志玲亲手抽出一辆Smart汽车送给幸运观众,引发了响彻全场尖叫和叹息.本来这一场高质量.高人气的活动将会在微信朋友圈和高德地图APP活动专区引爆,但是,高德方面却在23日预测试H5游戏时发

微信朋友圈举报功能来了 这回可以清静了吗?

“转疯了”等词一直是sx诱导分享的口头禅,明明只有几个点击却冠以那些形容词,想想也是挺滑稽的.微信朋友圈举报功能近日发布了,专治这类不正常的行为,大快人心! 微信朋友圈举报方法很简单,如果是个人消息,用户长按内容,在弹出的窗口中点击举报(投诉),选择相应原因提交即可. 如果是公众号群发消息,点击正文右上角的三个点,在选项列表中选择举报(投诉),再选择举报原因,提交即可. 微信宣布针对公众号通过红包.抽奖等方式诱导用户将营销内容分享到朋友圈的行为,一经发现或者被举报,相关消息将被拦截,且永久生效,

android 滚动栏下拉反弹的效果(相似微信朋友圈)

微信朋友圈上面的图片封面,QQ空间说说上面的图片封面都有下拉反弹的效果,这些都是使用滚动栏实现的.下拉,当松开时候.反弹至原来的位置.下拉时候能看到背景图片.那么这里简介一下这样的效果的实现. 本文源代码下载:点击 1.效果图 这部手机显示的分辨率有限,非常老的手机调试. 2.具有反弹效果BounceScrollView package com.org.scroll; import android.content.Context; import android.graphics.Rect; im

iOS版微信朋友圈数据库的简要分析

本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/4550523.html 之前写了一些关于微信聊天记录的博文之后,不少同仁向我提出有关导出缓存在手机的微信朋友圈数据的疑问,于是本人做了一些简单的分析,总结了一下微信在iOS存储朋友圈数据的数据格式,但仅仅是猜想而已,希望这篇博文对一些想动手做这方面开发的朋友们有所帮助. 首先,要感谢Wu,MH的指导,Wu提出iOS中微信朋友圈缓存的数据库存放在“//User/App

微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧!

微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧! 图片上传是非常常见的功能,而多图上传在大多数应用中也是非常常见的,比如微信的朋友圈,微博的动态,都是有九宫格图片的,那这里肯定涉及了多图上传,所以今天我们来一起撸一下,怎么去思考这个实现逻辑! 这里我想到的思路是比较简单的,首先,我们有一个按钮,按钮是上传图片,点击之后弹出某个界面进行图片的选择,一般是九张图片或者十二张,选完之后就直接上传了,大致的流程应该是这个样子,那我们首先来写个按钮 activity_main.xml <?

吐槽微信朋友圈

 先看图(图中两个姓名是一个人),在看微信朋友圈的时候,经常碰到这样一个问题,看到一些好友传了照片之后,然后就是自言自语个没完. 怎么回事,没人评论也不能在那里自言自语吧.说到这里你是不是觉得我很傻逼,因为朋友圈是个私密空间,互相之间的交流只有共同好友之间才能看到. 假如A.B.C相互都是好友,D只跟A是好友.A发了照片,B评论了之后,C可以看到,但是D看不到,因为D不属于A和B的共同朋友,不是一个圈子的.看上去这种方式很新颖奥,估计有很多人可能还没有注意到这点,怪不得别人发的东西评论那么少,而