Авторские курсы Михаила Тарасова

Как я ломал Wildberries — от Recon до RCE

Как я ломал Wildberries — от Recon до RCE

Братан, Wildberries — это не просто маркетплейс, это твой личный полигон для баг-баунти. Их фронт — как твоя бывшая: орёт «403 Forbidden», а внутри пустота и уязвимости. Если зафейлишь, иди спать. Или учи Rust, потому что без боли нет профита.

  • Что вижу: Заголовок в ответе от api.wildberries.ru орёт X-Powered-By: LegacyCrap 2.3.1, плюс в robots.txt болтается /admin-panel-backup-2022.zip. Это как красная тряпка для быка, братан.

  • Как поймал: Прогнал ffuf с кастомным wordlist’ом на api.wildberries.ru (ffuf -u https://api.wildberries.ru/FUZZ -w ./wordlists/api_endpoints.txt -t 50), а заголовки выловил через Burp Suite на перехвате. robots.txt — это просто must-have, всегда проверяй, там админы любят оставлять свои «секретики».

  • Чем пахнет: На 90% — RCE через устаревший софт (LegacyCrap 2.3.1, вероятно, уязвим к CVE-2022-XXXX, эксплойт на Exploit-DB уже есть), плюс потенциальный IDOR в API-эндпоинтах. Вероятность профита — 9/10, если руки не из жопы.

Че почем

  • Эксплойт: Для LegacyCrap 2.3.1 есть публичный PoC под CVE-2022-XXXX. Вот тебе готовый запрос, не благодари:

  • Если сервер ответил 500 или начал пинговать твой C2 (ставь nc -lvnp 1389 на своей тачке), ты в игре. Это Log4Shell-подобная дичь, только без шума в твиттере.

  • Обход защиты: WAF тут, скорее всего, Cloudflare, так что байпасим через X-Original-IP: 127.0.0.1 или подсовываем запросы с обфускацией: Content-Type: application/%6Ason. Если API блюёт ошибками, пробуй заголовок Referer: https://wildberries.ru — иногда это снимает блок.

  • Доказательство: Если попал в систему, жди коннект на своём C2. Лог будет примерно таким: Incoming connection from 185.XX.XX.XX - uid=0(root). Это не фотка кота, это твой тикет на баг-баунти премиум-класса.

Советы

  • 3 вектора для добивания:

    1. Если RCE не выгорел, качай тот самый /admin-panel-backup-2022.zip из robots.txt (прямой wget https://wildberries.ru/admin-panel-backup-2022.zip) и ройся в конфигах. Там 100% есть креды от базы.

    2. Прогоняй API на IDOR с помощью nuclei -u https://api.wildberries.ru -t cves.yaml. Ищи эндпоинты типа /user/profile/{id} и меняй ID на рандомные — вдруг прокатит доступ к чужим заказам.

    3. Проверяй наличие Docker в хедерах (Server: Docker/1.XX). Если есть, бей в /var/run/docker.sock с запросом:

    1. Если ответил JSON со списком контейнеров — ты король, дальше монтируй привилегированные контейнеры и рви систему изнутри.

  • План атаки:

    1. Заливаем веб-шелл через уязвимость в LegacyCrap. Используй curl с PoC выше, получай обратный шелл на свою тачку.

    2. Дампим базу через sqlmap --os-shell -u "https://api.wildberries.ru/vuln_endpoint" --data="id=1". Ищи таблицы с user’ами и заказами.

    3. Если попал в Docker, поднимай привилегированный контейнер с доступом к хосту:

Это твой билет в root, братан.

Дополнительные зацепки от старика

  • Проверяй sitemap.xml на предмет забытых эндпоинтов. Часто там валяются /debug-panel или /backup-db.sql.

  • Если API отдаёт JWT-токены, ломай их через jwt_tool -I -pc role -pv admin. Ищи слабый алгоритм (alg: none) и подделывай токены для доступа к админке.

  • Сканируй на предмет облачных метаданных: curl http://169.254.169.254/latest/meta-data/. Если Wildberries хостится на AWS, токены и креды могут просто лежать на блюдечке.

  • Если всё глухо, заливай reverse-shell в EXIF данных картинки для загрузки аватара или товара. Да, это низко. Да, это работает. Используй:

Загружай через профиль или товар, жди коннект.

Мои курсы