• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Http verb tampering, фальсификация HTTP заголовков методом GET и POST запросов

ilnurika

Участник
Сообщения
34
Реакции
17
0 руб.
Доброго времени суток, читатели и пользователи (тут один форум, вообщем НОУ)

Пролог
Статья посвящена, как вы уже догадались, фальсификации HTTP заголовков мотодом GET и POST запросов. Данная статья не является мануалом ко взлому механизма аутентификации, а лишь способом тестирования на проникновение (как это сейчас модно называть) своих личных машин. Статья написана исключительно в ознакомительных целях, автор не несёт никакой ответственности за неправомерное её использование.

Преамбула
HTTP Verb Tampering (HTTP Verb Фальсификация) является атакой, которая использует уязвимость в HTTP-Verb аутентификации и механизмах контроля доступа. Многие механизмы аутентификации только ограничивают доступ по своим параметрам, не предусматривая несанкционированный доступ к закрытым ресурсам с помощью других методов.
Многие механизмы аутентификации веб-сервера используют HTTP Verb и управления доступом. Такие механизмы безопасности включают в себя правила управления доступом для запросов с конкретными методами HTTP, а так же стандартными, такими как GET и POST. Однако веб-сервер реагирует и на альтернативные методы, которые не предвидел разработчик или даже на произвольные строки символов.
Пример методов:

HTML:

OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT

Почитать о них можно тут.

Фабула
Java Platform Enterprise Edition (Java EE) поддерживает Verb-аутентификацию и управление доступом через файл конфигурации web.xml. В Java EE, можно ограничить доступ к /administration/ каталогу для «adminstrator» пользователей, добавив следующие строки в web.xml:

HTML:

<security-constraint> <web-resource-collection> <url-pattern>/administration/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>administrator</role-name> </auth-constraint> </security-constraint>

Эти правила безопасности, обеспечивают блокировку GET или POST-запросов к /administration/ каталогам, от пользователей не наделенных администраторскими правами. Тем не менее, HTTP-запросы, составленные определённым образом к /administration/ каталогам блокироваться не будут. Хотя GET запрос от обычного пользователя будет заблокирован, HEAD запрос от него же заблокирован не будет. Если администратор настраивает веб-сервер, чтобы запретить все методы, отличные от GET и POST, механизм контроля доступа всё равно можно обойти, просто используя различные методы, которые поддерживаются сервером. Веб-сервера, уязвимые к данным запросам: IIS 6.0, Apache 2.2.8, и Tomcat 6.0.
У некоторых веб-серверов, например, Apache 2.2/PHP-it есть возможность обойти механизм контроля доступа с помощью произвольных строк символов для методов HTTP. Такие веб-сервера, осуществляют обработку запросов, которые не привязаны к конкретным методам HTTP. В отличие от HTTP, где GET запрос обрабатывается только если doGet() определен, некоторые веб-сервера пытаются обработать любые методы, включая неизвестные. Таким образом, заменяя законный метод на произвольный, атакующий может использовать уязвимости в обработке внутренней логики и обойти механизм контроля доступа.
Для проведения атаки вполне подойдет расширение для Firefox «HttpRequester»

Для того, чтобы изучить заголовки вручную, нам понадобится NetCat (является стандартным дистрибутивом для Linux), либо Telnet (входит в состав Windows). Запросы довольно примитивны и выглядят аналогично для обоих способов:

HTML:

[METHOD] /[index.htm] HTTP/1.1 host: [www.example.com]

Для того, чтобы изучить заголовки и их реакцию, создадим .txt файлы, в ваших любимых редакторах, со следующим содержимым:
OPTIONS

HTML:

OPTIONS /index.htm[*] HTTP/1.1 host: www.site.ru

GET

HTML:

GET /index.htm[*] HTTP/1.1 host: www.site.ru

HEAD

HTML:

HEAD /index.htm[*] HTTP/1.1 host: www.site.ru

POST

HTML:

POST /index.htm[*] HTTP/1.1 host: www.site.ru

PUT

HTML:

PUT /index.htm[*] HTTP/1.1 host: www.site.ru

DELETE

HTML:

DELETE /index.htm[*] HTTP/1.1 host: www.site.ru

TRACE

HTML:

TRACE /index.htm[*] HTTP/1.1 ho
 
Сверху Снизу