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

Задача

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

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

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

...
<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 не предоставляет возможностей стороннего постпроцессинга ответов. Научим его!

Решение

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

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

Вариант 2. Купи один материал

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


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

  1. clicker314

    06.10.2016 at 13:47

    Годная статья. Спасибо!

  2. vasian_adidas

    06.10.2016 at 15:42

    Желаю рака всем кто принимал активное участие в становлении хакера как платной параши. Пол страны на дошикиках экономит, а у них подписка 4к

    • clicker314

      06.10.2016 at 15:56

      Бесплатно только мухи серут — но толку от этого мало.

      Я бы и 10к платил без проблем, если-бы форум нормальный сделали.

    • Илья Русанен

      06.10.2016 at 18:02

      «Хакер» всегда был платным. Ну и да, авторы за «Дошики» статьи писать не рвутся. Может, ты станешь первым?)

  3. aquamoney

    09.10.2016 at 21:08

    Я, может, что-то не понял, но неужели не проще сделать эту задачу на NodeJS с использованием библиотеки request и jquery? Зачем городить вот такое?

    • Илья Русанен

      09.10.2016 at 21:42

      Привет!

      Я писал:

      Разумеется, пример с подсчетом DOM-элементов чисто умозрительный. В реальности ты можешь проводить абсолютно любой постпроцессинг данных с использованием всей мощи Python и пробрасывать данные в таблицу результатов таким нехитрым трюком.

      Это просто синтетический пример для демонстрации техники работы с хуками Burp.

      На Node.js, разумеется, можно. Можно и с request,и без request, и без jquery и даже даже без Node.js =).

      Но во время аудита для типовых задач чаще используются готовые тулзы, а не пишутся свои. А так-то да, я только за пожонглировать коллбеками)

  4. madglow

    09.02.2017 at 08:32

    Возможно я придираюсь, но «Скачай его, разархивируй в любую папку» не равно «Скачай его и проинсталируй». Просто распакованный архив(в отличии от установленного Jython) не содержит pip в /bin.

Оставить мнение

Check Also

IoT-ботнет DoubleDoor обходит защитные решения с помощью комбинации двух эксплоитов

Специалисты компании NewSky Security обнаружили новый ботнет, состоящий из уязвимых устрой…