Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Принимать Set-Cookie средствами пхп |

17.04.2007, 23:35
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 23
Провел на форуме: 208347
Репутация:
4
|
|
Принимать Set-Cookie средствами пхп
Отправляю POST запрос на сервер. Он мне пытается вставить куки:
Set-Cookie:блаблабла1
Set-Cookie:блаблабла2
Set-Cookie:блаблабла3
Каким образом при помощи пхп перехватить эти куки , чтобы потом их юзать при следующем запросе?
Сорри, если вопрос ламерский - я в пхп нуб пока.
Спасибо!
|
|
|

17.04.2007, 23:55
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 23
Провел на форуме: 208347
Репутация:
4
|
|
Короче, попытаюсь написать поподробнее...
При помощи Inetcrack отправляю:
Код:
POST http://site.com/login HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://site.com
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: site.com
Content-Length: 47
Pragma: no-cache
Cookie: PHPSESSID=2f83a67a61ef83594528c117c25a7da3
username=usver&password=123456&processlogin=1
Получаю ответ:
Код:
HTTP/1.0 302 Found
Date: Tue, 17 Apr 2007 18:23:23 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
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
location: http://site.com/authloggedin
Content-Length: 0
nnCoection: close
Content-Type: text/html; charset=UTF-8
RemovedHdr: Keep-Alive
И потом снова отправляю:
Код:
GET http://site.com/ HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://site.com/login
Accept-Language: ru
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: site.com
Pragma: no-cache
Cookie: PHPSESSID=dbad9cfe26fa3aa839312951e7053c4d; loginname=usver; id_hash=bca49e192dce15ec725dce475e59d1a0
И все...
Как реализовать все это на пхп?
Если можно - приведите код.. Битый час пытаюсь написать этот скрипт, но нифига не фурычит... По-моему, я где-то туплю..
|
|
|

17.04.2007, 23:55
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
открываеш сокет, отправляеш http заголовок, потом читаеш ответ,в нем будут твои куки! Ты их просто выдираеш оттуда и юзаеш!
|
|
|

17.04.2007, 23:58
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 23
Провел на форуме: 208347
Репутация:
4
|
|
Сообщение от nc.STRIEM
открываеш сокет, отправляеш http заголовок, потом читаеш ответ,в нем будут твои куки! Ты их просто выдираеш оттуда и юзаеш!
Необходимо, чтобы скрипт самостоятельно выдирал куки, а потом юзал их при Get запросе.
|
|
|

18.04.2007, 00:12
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Сообщение от beerbear
Необходимо, чтобы скрипт самостоятельно выдирал куки, а потом юзал их при Get запросе.
сохраняешшь состояние сокета в переменую, потом парсишь эту переменую например с помощью регулярки(регулярного выражения) Cookie: PHPSESSID=2f83a67a61ef83594528c117c25a7da3 потом вставляешь в переменую и опять отсылаещь.
Как я понял ты хочешь че то брутануть, зделай все в цикле, условием остановки которого будет удачный ответ.
Последний раз редактировалось AkyHa_MaTaTa; 18.04.2007 в 00:18..
|
|
|

18.04.2007, 01:45
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
2beerbear
вот примерный вариант шаблона, который тебе нужен. Если че-то не понятно, тогда помочь могут только маны пХп (работа с сокетами, http протокол, ессии, ну и парсинг строковыми функциями)
PHP код:
<?
//соединяемся с сервером
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if(!$fp)
{ //проверяем успешность соединения
echo "$errstr ($errno)<br />\n";
} else {
//пишешь заголовки, к примеру
$header = 'POST http://site.com/login HTTP/1.0';
$header .= //подставляешь нужные заголовки...
for(){ //кол-во вложенных циклов зависит от кол-ва переменных для брута
// если логин и пароль, то 2-а цикла
$header .= //дописываешь нужные переменные
//отправляем запрос
fputs($fp, $header);
//построчно считываешь соединение
//и парсишь
for($i=0;$i<count($answer);$i++) {
$answer[]=fgets($socket);
if(strpos($answer[$i], 'базис сравнения')!==false) //... даллее действие при совпадении
fclose($sock);
}
}
?>
Последний раз редактировалось mR_LiNK[deface_0nl; 18.04.2007 в 01:58..
|
|
|

18.04.2007, 03:38
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 23
Провел на форуме: 208347
Репутация:
4
|
|
Спасибо, конечно, за ответы всем.. Вот только вы меня не так поняли.. =) Брутить я никого не собираюсь..
Просто мне надо повторить описанные выше запросы при помощи скрипта на пхп.
Т.е. скрипт должен отправлять 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 запрос?
Спасибо!
|
|
|

18.04.2007, 09:21
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Т.е. скрипт должен отправлять 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 запросе выставить эти куки.
Я просто не знаю, как это реализовать.
Получаешь весь хидер в буфер, а потом выдираешь все Set-Cookie регуляркой, например, preg_match( )
|
|
|

18.04.2007, 12:08
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
вот скриптик, рег флудер, немного переделаешь регулярку и добавишь login  ass в отправку из файлика.
http://slil.ru/24253456
|
|
|

18.04.2007, 22:51
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
МДА, ещё с первого поста можно было понять, что сокетом он уже умеет пользовапться и ему не нужно учиться им пользоваться второй раз, ему нужно пропарсить куки.
Код:
<?
$a_cookie = array();
ParseCookie('HTTP/1.0 302 Found
Date: Tue, 17 Apr 2007 18:23:23 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
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
location: http://site.com/authloggedin
Content-Length: 0
nnCoection: close
Content-Type: text/html; charset=UTF-8
RemovedHdr: Keep-Alive', $a_cookie);
ParseCookie('HTTP/1.0 302 Found
Date: Tue, 17 Apr 2007 18:23:23 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
Set-Cookie: PHPSESSID=2f83a67a61ef83594528c117c25a7da3
Content-Length: 0
nnCoection: close
Content-Type: text/html; charset=UTF-8
RemovedHdr: Keep-Alive', $a_cookie);
$cookie = array();
foreach($a_cookie as $param => $value)
{
$cookie[] = "$param=$value";
}
echo '<pre>Cookie: '.implode('; ', $cookie).'</pre>';
# *************************************************
function ParseCookie($text, &$cookie)
{
preg_match_all('/Set-Cookie:\s*(\S[^\r\n]*)\s*[\r\n]/sU', $text, $matches, PREG_SET_ORDER);
foreach($matches as $cur)
{
$elements = preg_split('/\s*;\s*/', $cur[1]);
foreach($elements as $element)
{
list($param, $value) = preg_split('/\s*=\s*/', $element);
$cookie[$param] = $value;
}
}
}
?>
Эту функцию можно вызывать после получения каждой страници, так как они могут добавлять новые переменные или заменять старые.
[Great:] ОМФГ, Ну и форматирование=\\\
Последний раз редактировалось _Great_; 18.04.2007 в 23:13..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|