![]() |
Принимать Set-Cookie средствами пхп
Отправляю POST запрос на сервер. Он мне пытается вставить куки:
Set-Cookie:блаблабла1 Set-Cookie:блаблабла2 Set-Cookie:блаблабла3 Каким образом при помощи пхп перехватить эти куки , чтобы потом их юзать при следующем запросе? Сорри, если вопрос ламерский - я в пхп нуб пока. Спасибо! |
Короче, попытаюсь написать поподробнее...
При помощи Inetcrack отправляю: Код:
POST http://site.com/login HTTP/1.0Получаю ответ: Код:
HTTP/1.0 302 FoundИ потом снова отправляю: Код:
GET http://site.com/ HTTP/1.0И все... Как реализовать все это на пхп? Если можно - приведите код.. Битый час пытаюсь написать этот скрипт, но нифига не фурычит... По-моему, я где-то туплю.. |
открываеш сокет, отправляеш http заголовок, потом читаеш ответ,в нем будут твои куки! Ты их просто выдираеш оттуда и юзаеш!
|
Цитата:
|
Цитата:
Как я понял ты хочешь че то брутануть, зделай все в цикле, условием остановки которого будет удачный ответ. |
2beerbear
вот примерный вариант шаблона, который тебе нужен. Если че-то не понятно, тогда помочь могут только маны пХп (работа с сокетами, http протокол, ессии, ну и парсинг строковыми функциями) PHP код:
|
Спасибо, конечно, за ответы всем.. Вот только вы меня не так поняли.. =) Брутить я никого не собираюсь..
Просто мне надо повторить описанные выше запросы при помощи скрипта на пхп. Т.е. скрипт должен отправлять POST запрос на site.com/login, чтобы получить куки: Set-Cookie: PHPSESSID=dbad9cfe26fa3aa839312951e7053c4d; path=/; domain=.site.com Set-Cookie: loginname=usver; path=/; domain=.site.com Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; domain=.site.com сохранить эти куки в переменную, а потом в GET запросе выставить эти куки. Я просто не знаю, как это реализовать. Получается скрипт после ответа сервера получает куки и идентификатор сессии и GET запросом переходит на нужную мне страницу www.site.com/dir/dir2. Список логинов.паролей юзеров у меня есть. Основная трудность, как подставить куки, полученные в ответе сервера в GET запрос? Спасибо! |
Цитата:
|
вот скриптик, рег флудер, немного переделаешь регулярку и добавишь login:pass в отправку из файлика.
http://slil.ru/24253456 |
МДА, ещё с первого поста можно было понять, что сокетом он уже умеет пользовапться и ему не нужно учиться им пользоваться второй раз, ему нужно пропарсить куки.
Код:
<?[Great:] ОМФГ, Ну и форматирование=\\\ |
Всем огромное спасибо за ответы! Хидден - мегареспект! =)
В принципе я с самого начала шел в правильном направлении, но меня смущала ошибка, от которой я так и не избавился.. Вот пхп код пост запроса на сервак: PHP код:
На денвере скрипт выдавал ошибку "Fatal error: Maximum execution time of.." на хосте работал, но оооочень медленно. Поставил set_time_limit(0); - стал работать и на денвере, но также медленно. Я просто не понимаю одного: если отправляешь тот же самый пост запрос при помощи Inetcrack'a, то через секунду приходит ответ сервера, а если скриптом - приходится ждать 5-10 минут... Что я делаю не так? |
используй http/1.0 вместо http/1.1
т.е.: PHP код:
|
Все. Вопрос снимается. Сам нашел.
$hd .="Proxy-Connection: Keep-Alive\r\n"; - не нужна. 2mR_LiNK[deface_0nl: Ок. Ща попробую! |
Млин...
Или я добью этот скрипт, или он меня... В ответе сервера, если отправлять через инеткрэк присутствуют: Set-Cookie: PHPSESSID=dbad9cfe26fa3aa839312951e7053c4d; path=/; domain=.site.com Set-Cookie: loginname=usver; path=/; domain=.site.com Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; domain=.site.com а если отправлять через скрипт, то только Set-Cookie: loginname=usver; path=/; domain=.site.com Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; domain=.site.com А без идентефикатора сессии PHPSESSID ничего сделать не получится.. Что это может быть за фигня? |
Возможно что ты сессию получаешь ещё до логина, потом передаёшь её во время логина, и только тогда получаешь другую сессию.
|
Это потому, что ты при первом же запросе передаешь идентификатор сессии, который ты, можно сказать, от балды выдумал, а доверчивый ПХП ведется...
И ведется, кстати не просто так, а потому, что этот PHPSESSID был им уже выдан некоторое время назад инеткрэку, запущенному с твоей машины. Поэтому, чтобы тебе выдало новый PHPSESSID, закомментируй строчку: PHP код:
|
Цитата:
неа.. я ее закомментил сразу же после первой неудачи.. не в этом дело.. даже не знаю, что еще можно предпринять.. |
нарики
PHP код:
|
| Время: 17:57 |