Завдяки організації очного баг-баунті марафону разом з HackenProof, найбільша українська платформа для замовлення таксі залучила 25 елітних етичних хакерів для тестування своїх веб- та мобільних застосунків — виявивши вразливості, які могли призвести до крадіжки даних користувачів, захоплення панелі адміністратора та маніпуляцій із профілями водіїв.
Огляд
Uklon — найбільший в Україні сервіс виклику таксі, платформа, що охоплює веб, Android та iOS. Запущена як студентський проєкт у 2010 році, вона виросла до системи з мільйонами завантажень і сотнями тисяч активних щоденних користувачів. Зі зростанням платформи розширювалася й поверхня для атак, що зробило проактивну перевірку безпеки бізнес-пріоритетом.
HackenProof провів інтенсивний очний баг-баунті марафон — Hacken Cup — зібравши 25 найкращих світових етичних хакерів у Києві для тестування систем Uklon в умовах реальної протидії. Технічна команда Uklon працювала поруч із дослідниками протягом усього дня, переглядаючи результати в режимі реального часу.
25 Елітних етичних хакерів, відібраних зі спільноти HackenProof
74 Звітів про вразливості подано за одну 9-годинну сесію
9 годин Тривалість очного баг-баунті марафону в Blockchain Hub, Київ
КЛЮЧОВИЙ РЕЗУЛЬТАТ
4 Окремих типи вразливостей із значним впливом, виявлених на платформі
Виклики
Uklon стикався з ризиками безпеки, які стандартні внутрішні процеси перевірки не здатні виявити.
Мультиплатформна поверхня атак
Web, Android та iOS мають різні вектори атак і вимагають різної експертизи в галузі безпеки — внутрішні команди рідко мають однакову глибину знань у всіх трьох середовищах.
Сліпа зона зсередини
Внутрішні інженери знають, як система повинна працювати. Етичні хакери знають, як її можна зламати. Без зовнішніх тестувальників цілі категорії вразливостей залишаються неперевіреними.
Відсутність постійного рівня безпеки
Не маючи формальної програми баг-баунті, Uklon не мав структурованого каналу для дослідників, щоб повідомляти про вразливості — критичні знахідки залишалися нерозкритими або без уваги.
Як це працювало
HackenProof організував Hacken Cup як стислу, високоінтенсивну подію — відокремивши роботу, орієнтовану на дослідників, від внутрішніх інженерних команд Uklon.
1. Відбір дослідників через кваліфікаційний CTF
HackenProof запросив 25 дослідників зі своєї глобальної спільноти, відібраних через кваліфікаційний CTF-челендж. Це забезпечило відбір перевіреного пулу з високою кваліфікацією замість відкритого формату подачі.
2. Визначення охоплення трьох платформ
До сфери тестування увійшли три платформи: uklon.com.ua (вебзастосунок), Uklon для Android та Uklon для iOS. Рівні винагород встановлювалися відповідно до критичності вразливостей, щоб стимули дослідників відповідали бізнес-ризикам.
3. Очний формат тестування — 9 годин наживо
Хакери працювали 9 годин у Blockchain Hub у Києві. Очний формат забезпечив взаємодію в реальному часі між дослідниками та технічною командою Uklon, скоротивши цикл зворотного зв'язку з тижнів до годин.
4. Обговорення вразливостей у режимі реального часу
Команда розробників Uklon переглядала та обговорювала знахідки з дослідниками протягом усього дня — отримуючи безпосереднє розуміння того, як мислять зловмисники та які кроки з усунення є найбільш терміновими.
5. Структурований збір та передача звітів
Усі 74 подані звіти були зібрані, структуровані та передані інженерній команді Uklon після заходу з кроками відтворення та класифікацією критичності для пріоритетного виправлення.
Результати
УНІКАЛЬНІ ТИПИ ВРАЗЛИВОСТЕЙ
4
Типи вразливостей із значним впливом — XSS, IDOR, захоплення панелі адміна через Blind XSS — кожна з потенціалом для крадіжки даних, перехоплення сесій або компрометації платформи
ЗАГАЛЬНА КІЛЬКІСТЬ ЗВІТІВ
74
Звітів про вразливості подано 25 дослідниками на веб та мобільних платформах за один день
ТРИВАЛІСТЬ ТЕСТУВАННЯ
9 годин
Тривалість марафону — відповідає або перевищує те, що традиційне пентестування досягає за тижні
ЗАЛУЧЕНО ДОСЛІДНИКІВ
25
Елітних дослідників зі світової спільноти HackenProof, відібраних через кваліфікаційний CTF-челендж
РОЗПОДІЛ ВРАЗЛИВОСТЕЙ ЗА КРИТИЧНІСТЮ
Високий / Критичний - 1
Середній - 3
Знайдені вразливості
Дослідники виявили чотири окремі класи вразливостей на веб- та мобільних платформах Uklon. Кожна знахідка нижче була перевірена та задокументована з кроками відтворення.
- Середня
Self XSS, підвищений до Reflected XSS
Тип: Міжсайтовий скриптинг (XSS)
Повідомлення про помилку в полі введення адреси Uklon відображали введені користувачем дані без фільтрації спеціальних символів. Це дозволило підвищити Self XSS (низька критичність, що впливає лише на зловмисника) до Reflected XSS (середня критичність) — коли зловмисно сформована URL-адреса могла виконувати довільний JavaScript у браузері жертви.
Можливі наслідки:
- Компрометація облікових даних для входу користувача через ін'єкцію кейлогера
- Перехоплення автентифікованих сесій користувачів
- Заміна головної сторінки Uklon шахрайською сторінкою та ін'єкція хибних сповіщень, зображень або реклами
Знайдено: Artem, Igor Blumental, Stas Kravchenko
2. Середня
IDOR: Несанкціоноване маніпулювання фотографіями водіїв
Тип: Небезпечне пряме посилання на об'єкти (IDOR)
Будь-який автентифікований користувач міг маніпулювати — редагувати, видаляти або замінювати — фотографіями профілю будь-якого водія в базі даних Uklon. Вразливість використовувала відсутність перевірок авторизації на ендпоінті зображень водія: підставивши uid іншого водія, зловмисник міг видалити або перезаписати аватар цього водія без будь-яких обмежень. Ідентифікатори водіїв були недостатньо захищені від перебору.
Можливі наслідки:
- Видалення або заміна профільного фото будь-якого водія на платформі
- Видавання себе за водіїв шляхом завантаження довільних зображень до їхніх профілів
- Нанесення шкоди репутації водія або створення плутанини серед пасажирів
Приклад запиту:
DELETE /driver/service/removeimage HTTP/1.1
Host: partner-staging.uklon.com.ua
Connection: close
Content-Length: 63
appuid: a306fc19-d7f2-4bbf-95ef-1a68c886d5b5
Origin: https://partner-staging.uklon.com.ua
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
clientid: 6289de851fc726f887af8d5d7a56c635
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: [session cookie]
imagetype=driveravatar&uid=7890b85e-aa8c-4ae9-8e13-fbb1c30a1fc3Знайдено: Abdullah Hussam, Sam Eizad
3. Середня
IDOR: Редагування та видалення відгуків інших користувачів про поїздки
Тип: Insecure Direct Object Reference (IDOR)
Друга IDOR-вразливість дозволяла будь-якому користувачеві змінювати або видаляти відгуки про поїздки, залишені іншими пасажирами, а також читати приватні відгуки про будь-якого водія. Ідентифікатори коментарів були простими послідовними цілими числами, а не унікальними ідентифікаторами — зловмисник міг перебрати всі відгуки на платформі, збільшуючи значення ID.
Можливі наслідки:
- Видалення негативних відгуків про будь-якого водія для штучного підвищення його рейтингу
- Заміна позитивних відгуків про конкурентів-водіїв на негативні
- Перегляд приватних відгуків, призначених лише для внутрішнього перегляду
- Систематичне видалення всіх відгуків на платформі шляхом збільшення ID=1, 2, 3…
Приклад запиту:
# Редагування або створення відгуку від імені іншого користувача
PUT /api/v1/feedbacks
# Перегляд усіх відгуків про будь-якого водія (замініть ID водія для перебору)
GET /api/v1/drivers/f0994a5dbf5f4b58afd7fbf2a804765f/feedbacksЗнайдено: Geekboy, Sahil Ahamad, Yassine Aboukir
4. Висока
Blind XSS: Повне захоплення панелі адміністратора
Тип: Сліпий міжсайтовий скриптинг (Blind XSS)
Спеціальні символи в полях імені пасажира та коментарів до оплати правильно фільтрувалися в інтерфейсах користувача та водія — але не в панелі перегляду адміністратора. Зловмисник міг ін'єктувати шкідливий пейлоад до будь-якого з цих полів під час поїздки; коли адмін пізніше переглядав цей запис, пейлоад виконувався непомітно в браузері адміна. Це класичний патерн Blind XSS: зловмисник безпосередньо не бачить виконання, але вплив відбувається у привілейованому контексті.
Можливі наслідки:
- Викрадення облікових даних адміністратора
- Виконання довільного JavaScript в інтерфейсі адміністратора — повне захоплення сесії
- Зміна або видалення системних даних
- Використання скомпрометованої сесії адміна як плацдарму для подальших атак на користувачів та платформу
Знайдено: Arbin
Відгук клієнта
"Ми були справді вражені обсягом роботи, яку хакерам вдалося виконати за один день. Протягом усього дня технічна команда Uklon обговорювала виявлені вразливості з хакерами, присутніми на заході, що дуже допомогло нам побачити речі 'очима хакерів'. Я вважаю, що програми Bug Bounty є чудовим та економічно ефективним способом зміцнити безпеку для великих і зрілих компаній. Завдяки HackenProof наш продукт тепер більш захищений, і ми можемо надавати кращі послуги нашим клієнтам."
Віталій Дятленко, Засновник та технічний директор — Uklon
Детальніше про досвід Uklon та результати Hacken Cup читайте в матеріалі Віталія Дятленка, CTO Uklon, на DOU: «Краш-тест Uklon: як компанія перевірила себе хакерською атакою і що з цього вийшло».



