投票刷票(微信投票能检测到刷票吗)

年底了,我家的微信群又热闹起来了。我家几个亲戚都在参加某评比活动的微信投票活动,所以七大姑八大姨每天都让我们在群里帮忙投票。家里人知道我是搞IT技术的,就想让我

年底了,我家的微信群又热闹起来了。我家几个亲戚都在参加某评比活动的微信投票活动,所以七大姑八大姨每天都让我们在群里帮忙投票。家里人知道我是搞IT技术的,就想让我弄个刷票软件自动刷票。所以我花了一些经历去研究这个灰色行业!

今天就和大家分享一下我最近的研究经验,让大家了解一下微信抢票软件的原理和实现!

一、 微信的刷票方式

微信刷票主要有两种方式:软件技术和人工水军。

人工刷票:人工刷票就是利用投票水军来刷票。商家热衷于搞微信投票活动,一些空空闲时间比较多的人就发现了这些商家,帮选手投票提成。这些人大多是兼职选民,外界一般称我们为投票水军。人工水军抢票的原理很简单,就是建立一个微信投票任务群,将投票任务发送到群里完成抢票。就这么简单。如果一组不够,就多组几组。

现在很多网络售票团队都声称是人工售票,但大部分都是假的。为什么?从他的收费标准可以看出,100票的价格可能在10元左右,所以一票可能不到一毛钱,利润不高,除非业务量特别大。所以几乎所有的票都是用刷卡软件刷的。

如果你想判断你的投票是不是手动刷的,你可以让他把你投票的所有截图发给你。我认为他不会把它们给你。呵呵,如果这样的话,你的投票价格至少每票3毛钱!

软件刷票:刷票软件的原理大多是通过包抓取工具分析提交投票时产生的数据,然后使用脚本程序批量提交数据,达到刷票的目的。最大的问题是如何突破限制,比如ip限制、验证码限制、微信登录授权限制等。网络购票工具很多,但大多效果不好,会受到平台的限制。

投票刷票(微信投票能检测到刷票吗)插图

二、 微信投票活动的漏洞和刷票技术手段

常见的漏洞如下:

1.在微信投票活动中,会出现两种投票情况。一种是投票服务器独立,只是借用了微信的投票平台。在微信平台投票后,会有投票转发操作,将活动中的投票情况转发到投票服务器。另一种是直接使用微信服务器发起投票操作。这种情况下不需要转发投票,直接在微信服务器上控制投票情况。

2.微信投票中需要的是微信账号来投票,而微信平台中关于微信账号有一个规则,就是每一个加密的微信账号都会形成一个OpenID,每个用户的OpenID在微信平台上都是唯一的。然后用户投票时,如果需要将投票转发到独立的服务器,微信平台会使用POST参数将包含投票用户OpenID的信息转发到投票服务器。投票服务器收到微信平台发送的投票帖请求后,会通过对比OpenID,确认同一微信账号在自己服务器中的投票次数。如果不需要转发到投票服务器,可以直接在微信服务器确认OpenID的投票状态。

3.当独立投票服务器收到POST请求时,只能判断这个发送来的OpenID的票数,而无法验证这个OpenID的真实性,因为无法使用微信服务器的数据。这是微信投票活动的一大缺陷。即使是直接利用微信服务票进行投票活动,虽然可以直接验证OpenID的真实性,但是只有利用技术手段绑定一些正确的OpenID的微信账号进行投票,才能通过这种验证。有了这个漏洞,利用一些技术手段实现微信抢票的操作就非常方便了。

常见的刷票技术手段:

1.针对微信投票无法验证OpenID真实性的漏洞,可以先用一个微信账号进行投票操作,然后用这个操作获取相关网络数据。该数据将包含POST请求的参数和内容。然后,可以使用一个脚本(比如Fiddler或Python)来构建POST请求。该请求中的参数和内容保证与获得的真实数据一致。然后按照真实OpenID的格式随机生成OpenID,可以根据需要多次发出POST请求来刷票,这样就可以实现一个简单的刷票操作。

2.对于有IP限制的微信投票活动,可以利用CURL伪造IP地址,让多个IP进行刷票。

二、 常见的防止刷票方法

1.只有关注微信官方账号才能投票。

在服务呼叫中获取用户基本信息。

API将返回以下数据:

投票刷票(微信投票能检测到刷票吗)插图(1)

当用户投票不关注时,我们可以根据subscribe是0还是1来判断他们是否关注。如果他们不关注,就会去微信官方账号的二维码页面,提示用户长按二维码关注微信官方账号。这种方式的缺陷是每次投票都要和微信服务器交互。

2.判断参考和用户代理

以下是请求报头的一些参数的示例:

投票刷票(微信投票能检测到刷票吗)插图(2)

Referer是最后访问的页面,因此referer必须是投票页面的地址。用户代理必须包含关键字MicroMessenger。

3.限制客户投票的数量。

以ip为同一ip投票的次数有限。因为经常使用nginx或者apache之类的代理服务器,所以直接使用HttpServletRequest的getRemoteAddr()经常会得到代理服务器的ip,但是我们想得到的是真实的ip地址。以下是获取真实ip的示例代码。

投票刷票(微信投票能检测到刷票吗)插图(3)

4.当投票量大于阅读量时,就是刷票行为。

存储页面读数,投票完成后,统计票数。如果投票量大于阅读量,就是刷票行为。

5.在提交表单数据的地方使用校验码。

投票刷票(微信投票能检测到刷票吗)插图(4)

服务器返回一个校验码。当dom初始化时,页面用js加密这个校验码。当提交时,它提交这个加密的校验码,然后服务器判断这个加密的校验码是否正确。校验码使用n次后设置为无效。

以下是伪代码。

服务器端处理:

投票刷票(微信投票能检测到刷票吗)插图(5)

四。微信抢票软件的常用实现方法

1.利用fiddler抓包实现微信投票(原理是利用OpenID真实性的漏洞)

第一步:首先,在电脑上下载微信软件。

一般微信投票需要在投票前关注微信官方账号,所以必须用电脑微信打开投票界面的链接。下载后打开微信,登录微信账号。然后复制粘贴投票网址,发送到文件传输助手。先别打开。

投票刷票(微信投票能检测到刷票吗)插图(6)

第二步:下载、安装并打开数据包捕获软件fiddler。

投票刷票(微信投票能检测到刷票吗)插图(7)

第三步:现在回到微信打开你刚想投的网站,然后打开抓包。

投票刷票(微信投票能检测到刷票吗)插图(8)

第四步:通过刚才微信里投票的过程,我们来看看fiddler里的情况。

投票刷票(微信投票能检测到刷票吗)插图(9)

这些数据出现了,需要分析。找出我们的投票数据。

最后经过分析,找到这些数据。

主持人:t:ssl.hi.163.com

内容类型:application/x-www-form-urlencoded

产地:n:https://qnm.leihuo.net

接受编码:gzip,deflate

连接:保持活动

接受:应用程序/json

用户代理:Mozilla/5.0(iPhone;CPU iPhone OS 10_2_1像Mac OS X)apple WebKit/602 . 4 . 6(KHTML像壁虎)Mobile/14d 27 micro messenger/6 . 7 . 1 NetType/WIFI Language/zh _ CN

参考者:r:https://qnm . lei huo . net/m/2018/哈哈哈/mju 5 nzaymdq 1 qxlqn 0j 6 ufvymxnbqufbqq = =/?聂= 0.674688067616421 & ampegg id = mju 5 nzaymdq 1 qxlqn 0j 6 ufvymxnbqufbqq = = & amp;uinfo = 0 & ampcode = 023 eqy 001 ycsr 02 osgyz 0 lrk 001 eqy 0y

内容长度:90

接受语言:zh-cn

https://SSL . hi . 163 . com/file _ mg/public/qnm/zbs 2018/incubation/changeEggProcess

wxid = ox 1 mat 8 wmesq 9 dioilupniesreno & amp;egg id = mju 5 nzaymdq 1 qxlqn 0j 6 ufvymxnbqufbqq % 3D % 3D & amp;is_pass=1

第5步:现在,我们需要重新组织这些数据,并执行合同发布操作。再刷一次票。

让我们回到小提琴手。这次我们需要打开这个。

投票刷票(微信投票能检测到刷票吗)插图(10)

第六步:分组填写我们刚才分析的数据。填好之后是这样的。然后,我们单击执行按钮。

投票刷票(微信投票能检测到刷票吗)插图(11)

第七步:点击提交后,看看软件返回什么数据。

投票刷票(微信投票能检测到刷票吗)插图(12)

第八步:这给了我们所需要的具体信息。但这是乱码。怎么处理?其实看看代码就知道了:-5。这意味着你已经孵化或投票。现在是我们需要操作的关键点。

第9步:回到我们刚才点击提交的地方。请更改以下数据。但不要减少或增加位数。再次提交。

投票刷票(微信投票能检测到刷票吗)插图(13)

第十步:最后,我们来看看返回的信息。

投票刷票(微信投票能检测到刷票吗)插图(14)

哈哈,刷票成功了!!!

2.用Python语言写脚本实现微信抢票(一种突破ip限制的投票方式)

对于那些微信投票只限制ip来源的方式,我们可以通过以下方式刷票:

第一步:在网上搜索大量代理ip,建立代理ip地址表。

投票刷票(微信投票能检测到刷票吗)插图(15)

第二步:用Python写一个自动执行脚本。

代码如下:

1.# coding=utf-8 2。导入urllib2 3。导入urllib 4。进口re 5。导入线程6。导入sys 7。从时间导入ctime 8。导入时间9。rlock = thre ading。RLock() 10。def vote(proxyIP,I,Urs): 11。试试:12。#打印“投票...% d ... "% i13。#使用代理ip14。proxy _ support = urllib2。Proxyhandler (ProxyIP) 15。opener = urllib2 . build _ opener(proxy _ support,URL lib 2。HTTPHandler) 16。#定义开启器17.18。Urllib2。Install _ Opener(开启器)19。#全球20强的揭幕战。21.sendt =' vote '。解码(' utf-8 ')。编码(“GB 2312”)22。23.#设置刷卡地址24。# post data bn25 . values = { } 26 . req = URL lib 2 . urlpen(URLs)27。#打开此URL 28。html = req.read() 29。# Read data 30.ifhtml.find ('true ')。解码(“UTF-8”)。encode ('GB 2312'): 31.print "投票[%d]成功" % i 32。返回1 33。否则:34。打印“投票[%d]。36.除了例外:37。返回假38。39.if __name__ == "__main__": 40。args = sys.argv 41。if(len(args) == 3): 42。ipFile = open(args[1]);43.ipList = ipFile.readlines() 44。ipFile.close() 45。长度=范围(len(ipList)) 46。线程数= [] 47。对于长度为48的I。ipLine = ipList[i] 49。50.ip=ipLine.strip() 51。proxy_ip = {'http': ip} 52。t =螺纹。Thread(target=vote,args=(proxy_ip,I,args[2])53。打印“get”,args[2],ip 54。螺纹.追加(t) 55。对于长度为56的I。线程[i]。start();57.如果我100分58秒。时间。睡眠(五)59。#每100个线程等待5秒60。我的长度是61。线程[I]。Join () 62.63。否则:64。打印“画笔”工具65。蟒蛇画笔..

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/82504.html

发表回复

登录后才能评论