如何加快URL暴力破解?

时间:2019-07-15 03:23:55

标签: python performance url brute-force

我正在尝试强行使用URL。它目前运行非常慢,我想知道如何优化代码。 (这是我喜欢的音乐家进行的CTF挑战,如果您破解URL,则会得到未发行的歌曲。) URL中需要破解的部分是5个字符长,字母和数字,不区分大小写。

到目前为止,我一直在使用itertools,最近我尝试添加流程以使其一次尝试多种组合。添加进程似乎并不能大大加快速度。

import requests
from requests.exceptions import HTTPError
import itertools
from itertools import combinations
from multiprocessing import Pool
from sys import exit

print 'generating codes'

symbols = "abcdefghijklmnopqrstuvwxyz1234567890"
urls = [''.join(i) for i in itertools.product(symbols, repeat = 5)]

print 'codes generated'


def checkurl(url):
    print 'trying ' + str(url)
    try:
        r = requests.get('http://website.com/' + str(url))
        r.raise_for_status()
    except HTTPError:
        pass
    else:
        print 'the URL is ' + r.url
        exit(0)

if __name__ == "__main__":
    p = Pool(processes=50)
    result = p.map(checkurl, urls)

我没想到它会非常快,也没想到,但是我也没想到它会这么慢。在当前状态下,它每秒最多尝试5次。我愿意切换语言,但是对其他与网络相关的其他语言不是很熟悉。

0 个答案:

没有答案