LINUX.ORG.RU

Не передается cookie при попытке логина на web-сайт из Linux

 asp, ,


0

2

Я нахожусь в месте, где доступ к интернету сделан через ж...

В общем, чтобы зайти в интернет, необходимо авторизоваться на страничке. Страничка очень простая: логин и пароль.

У меня имеется два ноута: один с MacOS, второй с Gentoo. Из MacOS получается авторизоваться, а из Gentoo - нет, причем я пробовал как из ФФ, так и из Safari через wine. Похоже, суть в том, что при авторизации из Gentoo сервер почему-то не возвращает сookie. Если взять cookie из MacOS и подсунуть в Gentoo, то авторизация проходит.

Cookie выглядит так: «ASP.NET_SessionId=4ppxll2kmnqdgn55apbowj55; path=/; HttpOnlym=04.08.2014 09:58:38 174461 95.15.200.159 598439; path=/» То есть, похоже, что на сервере стоит ASP.NET.

Вот так выглядит POST запрос на авторизацию (получено с помощью ФФ на MacOS):

Host: 172.16.0.1:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Connection: keep-alive

Content-Type: application/x-www-form-urlencoded
Content-Length: 71

auth_user=justin&auth_pass=justin&redirurl=&accept=Giri%C5%9F+%2F+Enter

После этого происходит переадресация на сайт askahotels.com, и в ответе приходит cookie (в поле Set-Cookie)

★★★★☆

Браузер и его настройки идентичны на обоих системах, разумеется?
P.S. Зачем вообще тут браузер, легче курлом посылать по необходимости.

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

P.S. Зачем вообще тут браузер, легче курлом посылать по необходимости.

я как раз wget'ом и авторизуюсь в Gentoo, когда «подсовываю» cookie из MacOS. Настройки браузера по умолчанию, так что думаю, что одинаковые.

Если делать wget --keep-session-cookies --save-cookies=file.txt --post='user=user&pass=pass' http://login.html (пишу по памяти опции и адрес, поэтому могу наврать), то файл file.txt остается пустым. Если аналогично делать через curl, то тоже никаких кукисов не приходит... Куда копать не ясно

Sahas ★★★★☆
() автор топика
Ответ на: комментарий от Sahas

Чудес не бывает. Ставь wireshark или firefox+livehttpheaders на обе системы и сравнивай что отправляется-принимается.

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

wireshark я запускал, но там много «мусорных» пакетов идёт, а я в этом во всём не сильно шарю... А вот про livehttpheaders впервые слышу, надо попробовать... Проблема в том, что ноут с MacOS не совсем мой, поэтому я особо с ним «химичить» не могу

Sahas ★★★★☆
() автор топика
Ответ на: комментарий от Sahas

Проблема в том, что ноут с MacOS не совсем мой, поэтому я особо с ним «химичить» не могу

Даже firefox с дополнением установить?
Я бы за тебя поснифал, да доступа у меня нет.

xtraeft ★★☆☆
()
Ответ на: комментарий от anonymous

F12 - вкладка Network - смотри, какие запросы идут.

это в ФФ? Тогда делал, оттуда и куки смотрю

xtraeft

Даже firefox с дополнением установить?

попробую, но здесь интернет такой тормозной...

Sahas ★★★★☆
() автор топика
Ответ на: комментарий от xtraeft

Вот что происходит из MacOS (получено с помощью livehttpheaders)

То есть сначала делается POST с логином/паролем, затем редирект, и в ответе приходит cookie. В linux посмотрю еще, но насколько помню, после редиректа опять возвращается код 302 (в MacOS возвращается код 200) и снова выкидывает на страницу логина без каких-либо ошибок.

http://172.16.0.1:8000/

POST / HTTP/1.1
Host: 172.16.0.1:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 71
auth_user=justin&auth_pass=justin&redirurl=&accept=Giri%C5%9F+%2F+Enter
HTTP/1.1 302 Found
Expires: Fri, 08 Aug 2014 15:55:03 GMT, 0
Cache-Control: max-age=180000, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Location: http://askahotels.com
Content-Type: text/html
Content-Length: 0
Date: Wed, 06 Aug 2014 13:55:03 GMT
Server: lighttpd/1.4.35
----------------------------------------------------------
http://askahotels.com/

GET / HTTP/1.1
Host: askahotels.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Connection: keep-alive

HTTP/1.0 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/8.0
Set-Cookie: ASP.NET_SessionId=exkdagq4imzlnx2lzt5j1145; path=/; HttpOnly
Set-Cookie: m=06.08.2014 04:55:04 072177  95.15.200.159 118091; path=/
X-AspNet-Version: 2.0.50727
X-UA-Compatible: IE=Edge,chrome=1
Date: Wed, 06 Aug 2014 13:55:04 GMT
Content-Length: 3867
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:3128
Connection: keep-alive

Вопрос - как сделать какой-либо командный файл для wget/curl, чтобы из консоли все эти запросы повторить с максимально близким содержанием?

Sahas ★★★★☆
() автор топика
Последнее исправление: Sahas (всего исправлений: 1)
Ответ на: комментарий от xtraeft

А вот что приходит из Linux (useragent я переопределил уже некоторое время назад, поэтому он такой же, как с MacOS)

http://172.16.0.1:8000/

POST / HTTP/1.1
Host: 172.16.0.1:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 71
auth_user=justin&auth_pass=justin&redirurl=&accept=Giri%C5%9F+%2F+Enter
HTTP/1.1 302 Found
Expires: Fri, 08 Aug 2014 16:28:07 GMT, 0
Cache-Control: max-age=180000, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Location: http://askahotels.com
Content-Type: text/html
Content-Length: 0
Date: Wed, 06 Aug 2014 14:28:07 GMT
Server: lighttpd/1.4.35
----------------------------------------------------------
http://askahotels.com/

GET / HTTP/1.1
Host: askahotels.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Connection: keep-alive

HTTP/1.1 302 Found
Expires: Fri, 08 Aug 2014 16:28:07 GMT, 0
Cache-Control: max-age=180000, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Location: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Content-Type: text/html
Content-Length: 0
Date: Wed, 06 Aug 2014 14:28:07 GMT
Server: lighttpd/1.4.35
----------------------------------------------------------
http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F

GET /index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F HTTP/1.1
Host: 172.16.0.1:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.0.1:8000/index.php?zone=captiveportal&redirurl=http%3A%2F%2Faskahotels.com%2F
Connection: keep-alive

HTTP/1.1 200 OK
Expires: Fri, 08 Aug 2014 16:28:07 GMT, 0
Cache-Control: max-age=180000, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html
Transfer-Encoding: chunked
Date: Wed, 06 Aug 2014 14:28:07 GMT
Server: lighttpd/1.4.35

Вроде, все заголовки практически одинаковые, но в MacOS при редиректе возвращается код 200 (и cookie), а в Gentoo - код 302 и выкидывает обратно на страницу логина

Sahas ★★★★☆
() автор топика
Последнее исправление: Sahas (всего исправлений: 2)
Ответ на: комментарий от Sahas

как сделать какой-либо командный файл для wget/curl, чтобы из консоли все эти запросы повторить с максимально близким содержанием?

В Networks выбери запрос в списке и в контекстном меню будет пунк «Copy as cURL».

d2
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.