Пытаюсь настроить автоматическую авторизацию на сайт(python модуль requests). Пробовал на разных сайтах, на сайте md.samdu.uz/login/index.php в методе POST на самом сайте выходят кроме anchor:, username: и password: есть значение logintoken: после того как вбиваю пароль и пытаюсь авторизоваться logintoken выдает каждый раз новое значение (видимо хеш) и не знаю как его предугадать или разхешировать, читал много статей, но толком ответа точного нет... Подскажите пожалуйста как обойти или решить проблему с шифровкой.
Предложили решение: Автор: Dr. Bacon @bacon
Общий вид такой, но у разных сайтов могут быть свои нюансы:
1. начать сессию, если это requests, либо другими способами сохранять куки запроса
2. сделать GET запрос, в которым получите logintoken, он может быть в куках, в html коде
3. вот теперь сделать POST с полученным logintoken и нужными данными, главное в рамках этой сессии.
Программа выдает страницу авторизации...
import requests
url = 'http://md.samdu.uz/login/index.php'
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'Cache-Control': 'max-age=0',
'Content-Length': '113',
'Content-Type': 'application/x-www-form-urlencoded',
'Cookie': 'MoodleSession=14pa1tlcrcbipjdke9u4lh88fl',
'Host': 'md.samdu.uz',
'Origin': 'http://md.samdu.uz',
'Proxy-Connection': 'keep-alive',
'Referer': 'http://md.samdu.uz/login/index.php',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
}
s = requests.Session()
token = s.get(url).text.split()
index = token.index('name="logintoken"')
print(token[index+1])
logintoken = token[index + 1][7:-2]
print(logintoken)
datas = {
'anchor': '',
'logintoken': logintoken,
'username': 'Amaliy2685',
'password': 'Aml-2683'}
r = s.post(url, data=datas, headers=headers)
print(r.text)