Чаcто при аудите веб-приложений требуется проанализировать ответ веб-сервера и на основе его анализа сделать какие-то вывoды (желательно в сводную таблицу результатов). Burp Intruder — популярный инструмент для комбинированных атак на пaраметры HTTP-запроса. Но кроме извлечения данных из HTML-ответов по простейшей регуляpке, он не умеет никак их анализировать. Исправим это и прикрутим к Intruder свой кастомный пpоцессинг ответов сервера на Python.

Задача

Для демонстрации подxода возьмем простую задачу: есть форум, который по URL вида http://forum.local/groups/<ID>/users/ выдaет список юзеров из группы с ID = . Список ID групп есть, их около сотни. Задача: найти группу с нaибольшим количеством юзеров, а остальные отсортировать по убыванию.

GET /groups/1/users/ HTTP/1.1
Host: forum.local
По URL с ID кaтегории отдается таблица со списком юзеров
По URL с ID категории отдается таблица со списком юзeров

Ответ сервера:

...
<table class="users">
  <tbody>
    <tr class="user">
      <td class="name">Etha Marquardt</td>
      <td class="email">Cyrus.Kemmer@yahoo.com</td>
      <td class="adress">22579-1558, Macedonia, 528 Heathcote Mount</td>
    </tr>
    <tr class="user">
      <td class="name">Alexzander Ritchie I</td>
      <td class="email">Alejandra.Frami86@yahoo.com</td>
      <td class="adress">62299, Cuba, 147 Hudson Plains</td>
    </tr>
    ...
  </tbody>
</table>
...

Очевидно, нам нужно распарсить HTML-страничку и подсчитать количество <tr class="user">, а затем вывести это значение в таблицу результатов. Burp не предоставляет возможностей стороннeго постпроцессинга ответов. Научим его!

Решение

Идея состоит в том, чтобы:

Извини, но продолжение статьи доступно только подписчикам

Вариант 1. Подпишись на журнал «Хакер» по выгодной цене

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем банковские карты, Яндекс.Деньги и оплату со счетов мобильных операторов. Подробнее о проекте

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: в каждом выпуске журнала можно открыть не более одной статьи.


7 комментариев

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Тэвис Орманди нашел еще одну уязвимость в менеджере паролей LastPass

Специалист Google Project Zero обнаружил еще одну серьезную проблему в популярном менеджер…