В этой статье я рас­ска­жу, как при про­веде­нии пен­теста вскрыл целый ряд уяз­вимос­тей одно­го веб‑сер­виса, которые в ито­ге дали мне дос­туп к акка­унтам любых поль­зовате­лей. Я вкрат­це опи­шу каж­дую уяз­вимость, а затем пос­мотрим, что надо сде­лать, что­бы зак­рыть подоб­ные дыры.

Pentest Award

Этот текст получил пер­вое мес­то на пре­мии Pentest Award 2024 в катего­рии «Про­бив web». Это сорев­нование еже­год­но про­водит­ся ком­пани­ей Awillix.

warning

Статья име­ет озна­коми­тель­ный харак­тер и пред­назна­чена для спе­циалис­тов по безопас­ности, про­водя­щих тес­тирова­ние в рам­ках кон­трак­та. Автор и редак­ция не несут ответс­твен­ности за любой вред, при­чинен­ный с при­мене­нием изло­жен­ной информа­ции. Рас­простра­нение вре­донос­ных прог­рамм, наруше­ние работы сис­тем и наруше­ние тай­ны перепис­ки прес­леду­ются по закону.

 

Перечисление пользователей

  • Уро­вень опас­ности: сред­ний

На сай­те, который я тес­тировал, была воз­можность зай­ти в лич­ный кабинет. А на стра­нице вхо­да наш­лась воз­можность переби­рать поль­зовате­лей и смот­реть ответ сер­вера: в слу­чае если поль­зователь с вве­ден­ным име­нем сущес­тву­ет, сер­вер отве­чает ина­че.

Ес­ли ука­зыва­ем сущес­тву­ющую учет­ку, получа­ем сооб­щение «Вве­ден невер­ный пароль» либо «Пре­выше­но количес­тво попыток вхо­да с невер­ным паролем». Если же поль­зовате­ля с таким логином нет, то в отве­те сер­вера будет сооб­щение «Ваши дан­ные не най­дены в сис­теме. Про­верь­те пра­виль­ность ука­зан­ных дан­ных».

Сообщение для валидного логина
Со­обще­ние для валид­ного логина
Сообщение для невалидного логина
Со­обще­ние для невалид­ного логина

Я запус­тил авто­мати­зиро­ван­ный под­бор по сло­варю и нашел некото­рое количес­тво валид­ных логинов.

 

Спреинг паролей

  • Уро­вень опас­ности: сред­ний

Даль­ше я нашел воз­можность под­бирать по сло­варю пароли най­ден­ных поль­зовате­лей — опять же по отве­ту сер­вера на вве­ден­ные дан­ные. Это ата­ка password spraying. Новые пароли я про­бовал каж­дые 30 минут, так как пос­ле каж­дого сле­дующе­го невер­ного вво­да учет­ных дан­ных пери­од бло­киров­ки не уве­личи­вал­ся. В ито­ге уда­лось подоб­рать пароли для трех поль­зовате­лей сер­виса.

 

Обход 2FA

  • Уро­вень опас­ности: кри­тичес­кий

Сра­зу зай­ти в лич­ный кабинет не уда­лось из‑за того, что сер­вис про­верял вто­рой фак­тор аутен­тифика­ции и про­сил ввес­ти код из SMS.

Страница ввода кода из SMS
Стра­ница вво­да кода из SMS

Изу­чив код этой стра­ницы, я нашел инте­рес­ный параметр — mode4. Здесь он име­ет зна­чение sms.

Параметры GET-запроса страницы ввода кода из SMS
Па­рамет­ры GET-зап­роса стра­ницы вво­да кода из SMS

Я переб­рал воз­можные зна­чения это­го парамет­ра и нашел нес­коль­ко таких, при которых нас не перенап­равля­ет обратно на стра­ницу вво­да логина и пароля.

Интересные значения, которые может принять параметр mode4
Ин­терес­ные зна­чения, которые может при­нять параметр mode4

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии