python爆破

ichunqiu平台上有一道web题象棋

查看源码发现其中一个正则js,[abcmlyx]{2}ctf[0-9]{3}.js
爆破一波

#!/usr/bin/python
# coding=utf-8
import requests
url1 = "http://a44460084873484cab7374e36274d8aa4111712deb514b8a.game.ichunqiu.com/js/"
s1 = "abcmlyx"
s2 = "0123456789"
flag = ""
for i in s1:
    for j in s1:
        for a in s2:
            for b in s2:
                for c in s2:
                    flag = i+j+"ctf"+a+b+c+".js"
                    url= url1+flag
                    r=requests.get(url,timeout=1)   #设置秒数超时,仅对于连接有效
                    if(r.status_code==requests.codes.ok):
                        print flag
                    else:
                        pass

老是中断,而且贼慢。。。。

总结:timeout 并不是整个下载响应的时间限制,而是如果服务器在 timeout 秒内没有应答,将会引发一个异常。

多线程爆破

#!/usr/bin/python
# coding=utf-8
import requests
# from multiprocessing import Pool 多进程
from multiprocessing.dummy import Pool as ThreadPool #多线程
url1 = "http://9555d85624b644ca921504a0f5bda354908d32f5690a4746.game.ichunqiu.com/js/"
s1 = "abcmlyx"
s2 = "0123456789"
flag = ""
pool = ThreadPool()  #没有参数时默认是cpu的核心数
urllist = []
def url_list():  #生成网址列表
    for i in s1:
        for j in s1:
            for a in s2:
                for b in s2:
                    for c in s2:
                        urllist.append(url1+i + j + 'ctf' + a + b + c + '.js')
    return  urllist
def url_open(url):
    try:
        r = requests.get(url)    
        if(r.status_code == requests.codes.ok):  #网址的状态码是否正确
            print url
    except:
        pass
def main():
    urllist =url_list()  #调用urllist函数
    pool.map(url_open,urllist)#创建多个进程,并行执行
    #urllist:要处理的数据列表;urlopen:处理urllist列表中数据的函数
    pool.close()#关闭进程池,不在接受新的进程
    pool.join()主程序阻塞等待子程序的退出
if __name__ == '__main__':
    main()

from multiprocessing import Pool 多进程
from multiprocessing.dummy import Pool as ThreadPool 多线程

对多进程多线程有疑惑的参考大佬博客https://blog.csdn.net/xiemanR/article/details/71746561?utm_source=blogxgwz0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值