авторизация через https по средствам логина и пароля (в консоли)
Модератор: Модераторы разделов
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
авторизация через https по средствам логина и пароля
Всем привет.
Такая задача: залогиниться на web-странице через https (из консоли).
Есть логин и пароль, которые я могу ввести через браузер, но понятия не имею как их использовать (через тот же openssl) в консоли.
Язык программирования - bash или C.
Благодарен за любые советы.
Такая задача: залогиниться на web-странице через https (из консоли).
Есть логин и пароль, которые я могу ввести через браузер, но понятия не имею как их использовать (через тот же openssl) в консоли.
Язык программирования - bash или C.
Благодарен за любые советы.
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: авторизация через https по средствам логина и пароля
curl в помощь.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: авторизация через https по средствам логина и пароля
Спасибо. Это было первое, что я попробовал.
По какой причине с его помощью все равно невозможно залогиниться? Какие-нибудь js или редиректы или еще что-нибудь?
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: авторизация через https по средствам логина и пароля
Ну это уж надо смотреть в отладчике браузера, какие он запросы отправляет, и пытаться воспроизвести всё в точности.
А как проверяете, удалось ли залогиниться?
А как проверяете, удалось ли залогиниться?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: авторизация через https по средствам логина и пароля
Curl возвращает мне html код. Я вижу, что там тоже самое, что и в браузере, когда не получилось залогиниться.
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: авторизация через https по средствам логина и пароля
Stauffenberg
Если у сайта нет HTTP-аутентификации, то нужно разбирать код страницы и смотреть на то, какую (и как) она шлёт форму.
Если у сайта нет HTTP-аутентификации, то нужно разбирать код страницы и смотреть на то, какую (и как) она шлёт форму.
Re: авторизация через https по средствам логина и пароля
А чем обусловлен такой выбор?
Питон нельзя? С ним там всё гораздо удобнее. Особенно, если потом придётся парсить содержимое странички.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: авторизация через https по средствам логина и пароля
Можно (с этого я начал), но там какая-то морковка в CentOS 6.7:
Код: Выделить всё
$ python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from http.client import HTTPSConnection
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named http.client
Интернета нет (pip отпадает). Все, что подходило по запросу python ssl, установил... (http.client вообще-то должен входить в "ядро" python, т.е. ничего для этого доустанавливать не нужно)
Поэтому переметнулся на openssl и curl. Они должны уметь создавать такие соедининия и авторизоваться (логиниться), но и тут засада...
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: авторизация через https по средствам логина и пароля
Stauffenberg писал(а): ↑18.11.2015 18:15Поэтому переметнулся на openssl и curl. Они должны уметь создавать такие соедининия и логиниться, но и тут засада...
Да в чём засада-то? Запрос сформировать не можете правильный? Так это от выбора инструмента не зависит, на чём ни пиши — пока не подберёшь всё, что хочет получить сервер, не залогинишься.
И openssl (в смысле — бинарник) тут на фиг не нужен.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: авторизация через https по средствам логина и пароля
А python-requests стоит?
емнип, в ядро оно входит в третьей ветке. во второй - нет.Stauffenberg писал(а): ↑18.11.2015 18:15http.client вообще-то должен входить в "ядро" python, т.е. ничего для этого доустанавливать не нужно
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: авторизация через https по средствам логина и пароля
Похоже на то, хотя... перепробывал уже наверное все перечисленные на stackoverflow
Например:
curl --user LOGIN:PASSWORD https://URL
или так:
curl https://USER:PASSWORD@URL
Да, стоит.
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: авторизация через https по средствам логина и пароля
Stauffenberg писал(а): ↑18.11.2015 18:46curl --user LOGIN:PASSWORD https://URL
или так:
curl https://USER:PASSWORD@URL
Это для HTTP-аутентификации, которой там, вероятно, нет (да и практически нигде в вебе её сейчас нет). Смотрите, что браузер шлёт. В простейшем случае там одного POST-запроса должно быть достаточно.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: авторизация через https по средствам логина и пароля
Bizdelnick писал(а): ↑18.11.2015 18:53Stauffenberg писал(а): ↑18.11.2015 18:46curl --user LOGIN:PASSWORD https://URL
или так:
curl https://USER:PASSWORD@URL
Это для HTTP-аутентификации, которой там, вероятно, нет (да и практически нигде в вебе её сейчас нет). Смотрите, что браузер шлёт. В простейшем случае там одного POST-запроса должно быть достаточно.
Просто чтобы быть уверенным, что мы говорим об одном и том же. Вот тут пример:
$
curl --user user:pass https://xyz.com/a #works ok
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: авторизация через https по средствам логина и пароля
Я говорю о том, что во втором ответе:
То есть об аутентификации через POST-запрос, которая там скорее всего используется. Проверить это никто кроме Вас не может. Где в Вашем браузере инструменты разработчика, знаете? Как там посмотреть, какие запросы он отправляет, разберётесь?
$
$ curl -c cookie.txt -d "LoginName=someuser" -d "password=somepass" https://oursite/a
$ curl -b cookie.txt https://oursite/b
То есть об аутентификации через POST-запрос, которая там скорее всего используется. Проверить это никто кроме Вас не может. Где в Вашем браузере инструменты разработчика, знаете? Как там посмотреть, какие запросы он отправляет, разберётесь?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: авторизация через https по средствам логина и пароля
Bizdelnick писал(а): ↑18.11.2015 19:11Где в Вашем браузере инструменты разработчика, знаете? Как там посмотреть, какие запросы он отправляет, разберётесь?
Похоже ничего друго не остается
Tcpdump мне тут не поможет.
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Re: авторизация через https по средствам логина и пароля
Так это.
Код: Выделить всё
from requests import Session
url="https://domain.com/login/"
session = Session()
login_data = {'formPosted':'1', 'login_email':'me@domain.com', 'password':'pw'} # конкретный список и названия полей можно посмотреть в коде html странички
session.post('https://localhost/login.py', login_data) # ура, мы залогинены. но опять таки, детали реализации нужно смотреть на месте. может у тебя там и не post вовсе.
# ну а потом
result = session.get('whatever_url_is_needed')
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.