TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
вольтаж

13 Jan, 16:57

Open in Telegram Share Report

первый крит на бб ☠️

Все совпадения случайны, да и вообще, просыпайся, багбаунти не существует. Погнали грызть бананы и прыгать по деревьям.


Одним холодным декабрьским вечером, сканер обнаруживает IIS сервер, уязвимый к cokieless сессии и shortname enum, благодаря чему даёт вытаскивать DLL библиотеки.


https://target.com/(S(X))/b/(S(X))in/Newtonsoft.Json.dll


Пару минут гуглежа и попадается статья SWARM'ов о пробиве вебчика по этому же сценарию.

Из хаоса информации и непонимая, выстроилась цель - раскопать кастомные DLL библиотеки.

Помня, что сервер уязвим к shortname enumeration, пробую подобрать имена через shortscan.


shortscan --timeout 20 --fullurl --stabilise --patience 1 --verbosity 1 https://target.com


БИНГО! Я ПОЛУЧИЛ ничего.

Не сдаёмся.
Пошёл в таверну ИИ, расписал воображаемую ситуацию и попросил сгенерить словарь DLL библиотек, включая как стандартные, так и с названием компании и целевого домена.

Среди мусора попалась Swashbuckle.Core.dll (автоматически генерит swagger)

Развернул Windows виртуалку, скачал ilspy (декомпилятор .NET) и начал смотреть что же там есть, ведь ИИ подсказал "в DLL должен быть определен путь к Swagger".

Около получаса прыгаю по коду и интерфейсу, ментально привыкая к .NET. Кое-как костылями натыкаюсь на путь к сваггеру
/swagger/docs/v1

Ликуя, вписываю в браузер иииИИ... сваггер не открывается. Сервер возвращает 404 и не более. Десятки раз перепроверил код, посоветовался с ИИ, пробовал обойти всякими методами и софтами.

Лишь через час вспоминаю, что сервер же уязвим к cookieless сессии! Складываю (S(X)) и путь к сваггеру


/(S(X))/swagger/docs/v1


ОТКРЫВАЕТСЯ СВАГГЕР 👁

Смотрю, изучаю, пробую API на вкус, затем вспоминаю истинную цель похода на сваггер - подобрать имена DLL библиотек.

Собрал ключевые слова со сваггера, закинул в ИИ и попросил сгенерировать ещё один словарь, но уже только кастомных библиотек. Подождал, скачал, запустил подбор и получил хиты!


/(S(X))/b/(S(X))in/COMPANY.core.dll
/(S(X))/b/(S(X))in/LONGASSDOMAIN.dll
/(S(X))/b/(S(X))in/COMPANYX.mvc.dll


Быстро, с потным руками и болью в спине (уже шёл 3-й час ночи), кидаю DLL'ки в ilspy и смотрю код сервиса. Кода слишком много, но и нельзя останаливаться. Надо выкачать весь код и уже затем браться за анализ.

Заметил, что в каждой DLL, в начале кода, были расписаны импорты внешних библиотек. С ИИ написал базовый скрипт, что забирал все импорты из DLL и собирал их в единый словарь


# Bulk extract from all DLLs in a directory
$dlls = Get-ChildItem -Path "C:\Users\w0ltage\Desktop\company-dlls\new" -Filter "*.dll"

foreach ($dll in $dlls) {
try {
$asm = [System.Reflection.Assembly]::ReflectionOnlyLoadFrom($dll.FullName)
$asm.GetReferencedAssemblies() | ForEach-Object {
$_.Name
}
} catch {
Write-Host "Could not load $($dll.Name): $($_.Exception.Message)" -ForegroundColor Red
}
}


Так подобрал ещё десяток библиотек.
На этом заканчиваю сессию багхантинга и ложусь спать.

Следующий день, казалось, был холоднее предыдущего. Впрочем, это не мешало моим пальцам искать уязвимости по небоскребам кода, словно собирая подарки на рождество. I live for this shit.

Следуя по сценарию SWARM'ов, следующим этапом надо было найти RCE. Часы шли медленно, но я не сдавался. Структуры, классы, импорты, утилиты, связки, креды, заголовки, внутренние адреса.

Спустя много дней ручного анализа кода, перепробовав кучу вариантов десера, логических баг и других вагонов уязвимостей.

Ещё пару часов отчаяния и попадается API эндпоинт /journal/get/{id}


/journal/get/8

Без аутентификации, вернулись чьи-то персональные данные. Край данных оказался на числе в почти 7 миллионов. Считай все эти 7кк ПДн торчали в интернет без аутентификации многие годы.

Заполнил репорт с уровнем критичности "высокий", но вендор сам повысил до критического и щедро наградил за находку.

В коде были найдены ещё пара лоу-медиум уязвимостей и всё.

Остался без RCE, но с первым критом 🚗

1.4k 1 60 93
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot