ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Отправляем данные серверу. Http протокол.
  #1  
Старый 10.03.2007, 21:32
Аватар для Talisman
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
Провел на форуме:
1325772

Репутация: 517


Отправить сообщение для Talisman с помощью ICQ
По умолчанию Отправляем данные серверу. Http протокол.

HTTP протокол:
Hypertext Transfer Protocol (HTTP, протокол передачи гипертекста) -
это язык, которым клиенты и серверы World Wide Web пользуются для общения
между собой. Он, по сути дела, является основой в Web.
Из всего протокола нам нужно уяснить структуру его пакета - тип(только в пакетах клиент-сервер)+заголовоки+данные.
В заголовках передается информация о клиенте, или о сервере (инфа отправителя и инфа о содержимом данных).
Вот дамп данных, идущих сереру от FireFox`a:
Цитата:
GET / HTTP/1.1
Host: www.yandex.ru

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.2) Gecko/20070219 Firefox/1.5.0.8, AlexaToolbar YB/2.0.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5..Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3..Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: L=1173559675.28403277; mesort=from;
первые 2 строчки обязательны - в них указывается тип запроса, и хост, на который он идет, далее идет инфа от браузера и всякий бред
Наиболее интересными и частоизменяемыми в хакерских целях являются поля:
кукисы, передаваемые серверу:
Cookie: L=1173559675.28403277; mesort=from;
поле Referer - откуда нас сюда послали:
Referer: http://ya.ru
и поле X_FORWARDED_FOR, которое передает неанонимный проксисервер :
X_FORWARDED_FOR: 12.153.13.24
ведь сюда мы можем подставить все, что угодно, а серверное ПО может обработать такую информацию некорректно - иксс, инъекция кода и тому подобное, существует очень много уязвимостей, использующих эти поля.

Итак, метод GET посылает запрос на сервер, и читает ответ - заголовки сервера и тело ответа - используется класика сплойтостроения - провести инъекцию через уязвимый параметр и получить ответ с результатом.
Метод POST аналогичен методу гет, только с помощью него можно передавать больше данных - аналогично, только если данные передаются формой.
Метод HEAD - отправляет запрос на сервер, но получает только заголовок - используется в брутах и досерах (когда дос идет не на отдаваемое содержимое, а на время обработки запроса).

лучше 100 раз увидеть, чем 1 раз прочитать, поэтому берем снифер, и снифам за своим браузером, что он посылает и как принимает, роемся в сорцах приложения(если есть), ищем дырки, составляем запрос, и вуаля, ставьте штамп взломано!
Так же снифинг трафика очень помогает изучить систему неимея ее исходного кода.
вот клевый снифер WPE-PRO

Более подробно ознакомиться с протоколом можно ТУТ и ТУТ

WPE-PRO
так.. как отправлять разобрались, а как же получить дамп пакета, идущего к серверу? лично я использую снифер WPE-PRO в нем выбираем имя приложения, и нажимаем кнопку запись, ловим дампы летящих пакетов, которые затем можем изменить и переслать либо с помощью того же WPE-PRO, либо с помощью Inet-Crack.
InetCrack
Качаем его отсюда: InetCrack интерфейс интуитивно понятный)))
Поехали!
Итак, как же отправлять запросы и получать ответы? мы рассмотрим несколько языков и методов:

PHP (fsockopen)
Вот небольшой кусочек кодаотправляющий запрос серверу через сокеты (CURL юзать не будем, т.к. статья для новичков - там не все видно, да и не везде он стоит):
PHP код:
<?php
// открываем сокет на хост: локалост и на 80 порт (стандартный веб)
    
$fp fsockopen('localhost'80$errno$errstr30); 
    
// Проверяем успешность установки соединения
    
if (!$fp) echo "$errstr ($errno)<br />\n"
    else
    { 
      
$headers "HEAD / HTTP/1.1\r\n"// отвечает за тип протокола!
      
$headers .= "Host: localhost\r\n"
      
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1\r\n"
      
$headers .= "Referer: http://ya.ru/\"\r\n"
      
$headers .= "Connection: Close\r\n\r\n"
      
// Отправляем HTTP-запрос серверу
      
fwrite($fp$headers); 
      
// Получаем ответ
      
$line='';
      while (!
feof($fp))
      { 
        
$line .= fgets($fp1024); 
      } 
      
fclose($fp); 
    } 
    echo 
$line
?>
вот эта строчка:
PHP код:
$headers "HEAD /js.js HTTP/1.1\r\n"
указывает, что тип запроса - HEAD, т.е. мы получим только заголовки ответа сервера, вот один из ответов на денвер:
Цитата:
HTTP/1.1 200 OK
Date: Sat, 10 Mar 2007 17:19:51 GMT
Server: Apache/1.3.33 (Win32) PHP/4.4.4
Last-Modified: Wed, 28 Feb 2007 21:07:58 GMT
ETag: "0-30c-45e5ef2e"
Accept-Ranges: bytes
Content-Length: 780
Connection: close
Content-Type: application/x-javascript
если бы мы указали GET вместо HEAD, то получили бы не только заголовки ответа, но и сам ответ, как например тут:
PHP код:
$headers "GET / HTTP/1.1\r\n"
Цитата:
HTTP/1.1 200 OK
Date: Sat, 10 Mar 2007 17:07:00 GMT
Server: Apache/1.3.33 (Win32) PHP/4.4.4
Last-Modified: Wed, 28 Feb 2007 21:07:58 GMT
ETag: "0-30c-45e5ef2e"
Accept-Ranges: bytes
Content-Length: 780
Connection: close
Content-Type: application/x-javascript

function Popup(i)
{
myElement = document.getElementById("ce");
if(myElement != null)
{
var hilfe = "<div class=\"popup3\"><iframe frameborder=\"0\" id=\"Frame\" src=\"hilfe.php?s="+ i + "\" width=\"415\" height=\"400\" border=\"0\"></iframe></div><a href=\"#\" onClick=\"Close()\"><img src=\"img/un/a/x.gif\" border=\"1\" class=\"popup4\" alt=\"Schlie&szlig;en\"></a>";
myElement.innerHTML=hilfe;
}
}
Примечание: в конце каждой строчки запроса дописываем: \r\nэто "символ перевода каретки". в конце каждого запроса нужно ставить двойное: \r\n\r\n (В HEX-дампе это выглядит как 0D 0A и 0D 0A 0D 0A)
PHP (cURL)
cURL - модуль для пшп, для начала - как его установить? т.к. по дефолту не идет, качаем:
http://slil.ru/24058043
зырим в файл php.ini, находим там строчку: extension_dir = "директория", в эту директорию и кидаем скачаный плагин.
Находим в том же файле php.ini строчку ;extension=php_curl.dll и заменяем на extension=php_curl.dll (если нету, то добавляем).
Итак, cURL - настроен. Работа с ним абсолютно аналогична, как и с сокетами, например:
PHP код:
function PrintPage($cookieStr$url)
{
$ch curl_init();
curl_setopt($chCURLOPT_USERAGENT'ослик маздай');
curl_setopt($chCURLOPT_COOKIE$cookieStr);
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_REFERER'http://antichat.ru/');
curl_setopt($chCURLOPT_RETURNTRANSFER1);
$pageOut curl_exec($ch);
curl_close($ch);
return 
$pageOut;

Плюсы cURL - поддерживает и https, к минусам же относится - редко установлен на хостингах, да и синтаксис его знать нужно) в сокетах его гораздо меньше), поэтому предпочтительнее использовать сокеты - и быстрее, и "переносимее", т.к. сокеты всегда есть (если не продизаблены)
PERL
вот отличный пример - http://www.milw0rm.com/exploits/1063 - учитесь рыться в чужих сорцах ) и вообще, милворм - кладезь информации ))
да и вот две статьи: http://forum.antichat.ru/thread27981-inetcrack.html
http://forum.antichat.ru/thread28960-inetcrack.html - от Gh0s7`a

Последний раз редактировалось Talisman; 11.03.2007 в 02:16..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор протокола Http bxN5 Чужие Статьи 2 13.03.2007 01:11
Хакеры похители данные у кандидата на пост президента Франиции ~!DoK_tOR!~ Мировые новости 1 08.03.2007 14:47
Безопасность по заказу. Кредитные карточки в интернете dinar_007 Мировые новости 0 14.08.2006 19:51
Из магазинов "утекают" данные о кредитках Nova Мировые новости 0 17.03.2006 15:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ