2013-08-15 8 views
-3

Я использую minecraft.net в качестве примера:аутентификации urllib2 не вернется ли он успешным или нет

Я также пробовал (https: //www.facebook.com/login.php) и (https: //www.facebook.com/ login.php).

Моя цель для кода, чтобы сообщить мне, является ли пароль правильным или неправильным (очевидно).

Является ли это ссылкой, которую я набираю, или это мой код? Если это мой код, что я делаю неправильно? Я пробовал много разных сценариев.

Код, который работает, оценен, но я полностью в порядке с вами, говоря мне, как это исправить!

import urllib2 
import os 
os.system("color 09") 
print "URL To Login To: " 
URL = raw_input("> ") 
os.system("cls") 
print "User Name To Login With: " 
username = raw_input("> ") 
os.system("cls") 
print "Password As Test: " 
password = raw_input("> ") 
os.system("cls") 

import urllib2, base64 

request = urllib2.Request(URL) 
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') 
request.add_header("Authorization", "Basic %s" % base64string) 
try: 
    result = urllib2.urlopen(request) 
    print "Password Recovered: " + password 
except: 
    print "Login Failed: " 
+0

Этот сайт не использует этот вид авторизации. Вам необходимо отправить запрос POST на '/ login', и сервер ответит HTML-страницей. Я уверен, что для этого есть какой-то API. – Blender

+7

Этот вопрос не соответствует теме, поскольку для воспроизведения этой проблемы пользователям необходимо попытаться получить несанкционированный доступ к системе. –

+0

Примечание. Если все, что вы действительно хотите сделать, это войти в такую ​​службу через Python, вы не должны использовать слово «грубый», что предполагает, что вы пытаетесь [грубой силой] (https://en.wikipedia.org/wiki/Brute-force_attack), если это на самом деле _is_ ваше намерение, вас здесь не приветствует –

ответ

2

Ваш весь Пароль Найдено/Brute Failed логика основана на recieveing ​​правильный ответ HTTP или нет.

Вы получаете сообщение Brute Failed, потому что эта страница login.php не существует (таким образом, возвращается ошибка 404).

Вы получили пароль для другой страницы, потому что он существует и возвращает действительный HTTP-ответ, который ожидает от urllib2.

Вы получаете действительный HTTP-ответ, указав, что у вас неправильный пароль, без сомнения.

Необходимо всегда проверять действительный ответ HTTP, а затем добавлять дополнительные проверки, чтобы узнать, есть ли у вас ответ «Плохой пароль» или «Хороший пароль». Вы делаете это, ища требуемый текст в теле ответа.