• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Автосабмиттер

  • Автор темы Adamant
  • Дата начала
A

Adamant

Уважаемые программисты, нужна ваша помощь.
Осваиваю HTTP. Решил написать автосабмиттер для тренировки.Не могу понять в чем дело. Скрипт должен авторизовываться на сайте методом пост.

Взял за образец сайт loadit.ru , (думаю ни кого не обижу).
Форма для входа такая:
Код:
<form method="post">
<input name="login_name" type="text">
<input name="login_password" type="password">
<input name="login" type="hidden" id="login" value="submit"><
</form>
Скрипт написал такой:
Код:
set_time_limit(0); 
//Логин и пароль 666666 
$fp = fsockopen("loadit.ru", 80, $errno, $errstr, 30); 
if (!$fp) 
{ 
echo "$errstr ($errno)<br />\n"; 
exit(); 
} 
$post_data = "login_name=666666&login_password=666666&login=submit"; 
$out = "POST / HTTP/1.1\r\n"; 
$out .= "Host: loadit.ru\r\n"; 
$out .= "Connection: Close\r\n\r\n"; 
$out .= "Accept: text/html;\r\n"; 
$out .= "Referer: http://loadit.ru\r\n"; 
$out .= "Connection: Close\r\n"; 
$out .= "Content-Length: ".strlen($post_data)."\r\n"; 
$out .= "Content-type: application/x-www-form-urlencoded\r\n\r\n"; 
$out .= $post_data; 
fwrite($fp, $out); 

$result = ''; 
while (!feof($fp)) 
{ 
$result .= fgets($fp, 128); 
} 
fclose($fp); 

// зарегились 
$fp = fsockopen("loadit.ru.", 80, $errno, $errstr, 30); 
if (!$fp) 
{ 
echo "$errstr ($errno)<br />\n"; 
exit(); 
} 
preg_match_all('/Set-Cookie: ([^;]+)/',$result,$cook,PREG_PATTERN_ORDER); 
echo "<pre>"; 
print_r($cook); 
echo "</pre><br />"; 
$out = "GET / HTTP/1.0\r\n"; 
$out.= "Cookie: ".implode("; ",$cook[1])."\r\n\r\n"; 
fwrite($fp, $out); 
while (!feof($fp)) 
{ 
echo "<pre>"; 
echo fgets($fp, 128); 
echo "</pre>"; 
} 
fclose($fp);
Сервер прислал такие заголовки:
Код:
Array  
(  
[0] => Array  
(  
[0] => Set-Cookie: PHPSESSID=ac75f6d75f4a7c9110deba355d5d2b4a  
)  

[1] => Array  
(  
[0] => PHPSESSID=ac75f6d75f4a7c9110deba355d5d2b4a  
)  

)  


HTTP/1.1 200 OK  

Date: Sun, 13 Jan 2008 00:34:27 GMT  

Server: Apache/2 

Last-Modified: Wed, 24 Oct 2007 22:56:55 GMT  

ETag: "2060403-2c-8b59bc0"  

Accept-Ranges: bytes  

Content-Length: 44 

Vary: Accept-Encoding,User-Agent  

Connection: close  

Content-Type: text/html  

Apache is functioning normally
Авторизоваться не получается. Несколько дней провел за чтением мануалов, но не нашел ответа на свою проблему.
Как получить тело самой страницы, которая после этого отображается?
Пробовал потом смотреть readfile этой же страницы, но там авторизации нет. Вот и не знаю, что мне с этим делать?
Однозначно нужен ваш совет специалиста.
С уважением Вячеслав.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!