На сайте все еще не прикрыли уязвимости, так что вы сможете увидеть и потрогать их "вживую" - https://mi-xx.ru. Рассказываю я о них потому, что владелец не захотел нормально общаться, сначала заигнорив на почте, а потом и вовсе добавив меня в ЧС во ВКонтакте, ссылаясь на то, что пентестестом займется их программист (ну что ж, думаю, у него все получится).
Начать следует с того, как был найден вышеназванный магазин с техникой от компании Xiaomi. А найден он был очень просто - через рекламу на Youtube. Я зашел на видеохостинг, вбил в поиске "Xiaomi Gaming Laptop" (уж очень мне захотелось заменить свой старый ПК на что - то более мобильное и производительное) и под третьим видео в топе обнаружил ссылку.
Это была реклама. А на рекламные ссылки я смотрю с интересом - порой, кроме приевшихся вставок про танки, самолеты, ставки на спорт и прочее, встречается что - нибудь необычное и даже интересное. Конечно же, такие проекты никогда не стоит рассматривать всерьез - однако, иногда, с них можно попробовать самим извлечь прибыль - неформально.
К сожалению, зайдя на сайт, я не испытал ничего, кроме чувства тоски, - высокие цены и скудный дизайн будто бы говорили мне покинуть его как можно скорее.
Я решил пойти дальше и удостоверившись в том, что он написан без использования новомодных фреймворков, я даже немного воодушевился и принялся искать баги, уже предвкушаю возможную выплату, частично покрывающую покупку нового ноутбука.
Первое, что сразу бросается в глаза - строка поиска. Я привык к тому, что, как правило, разработчики хоть бы немного осведомлены в области безопасности Web-приложений и не допускают оплошностей на главной странице сайта. Но я рискнул и вставил простейший пейлоад:
Нажал кнопку поиска. Секунда, страница обновляется и... первая уязвимость найдена - XSS!
Стоит также отметить, что при серфинге по сайту, результаты внедрения HTML-кода сохранялись - каждый раз, переходя на новую страницу, я встречал свой порно-alert-баннер.
Переходим к регистрации на сайте. Форма выглядит так:
Ничего не бросается в глаза? - reCaptcha. Судя по тому, как аляписто выглядит сайт, я не был бы удивлен, если бы она была неправильно настроена. Чтобы убедиться в этом, я заполняю поля, отправляю запрос и перехватываю его при помощи Burp Suite.
Стираю значение ключа "g-recaptcha-response" и пробую отправить запрос.
Результат? Как вы уже видите, - Success!
Перед тем, как перейти к форме с подтверждением номера телефона, меня заинтересовало сообщение, пришедшее на электронную почту:
Увидев его, мне сразу же в голову пришла мысль - что, если значение поля пароль (а, возможно, и не только оно), вообще никак не фильтруется? Судя по тому, что я уже видел ранее, это возможно с большой долей вероятности.
Итак, теперь я регистрирую аккаунт с немного другими данными, а в качестве пароля указываю:
Отправляю запрос, смотрю на пришедшее письмо и...
Бинго! Отсутствие фильтрации пароля открывает возможность DOS (отправляя очень длинную строку), либо возможность устроить масштабную фишинговую атаку на заранее заготовленный список Email-адресов.
Сразу после того, как мы мы зарегистрировали аккаунт, на сайте появляется всплавающее окно с просьбой ввести пришедший на телефон код для подтверждения регистрации - без его ввода мы не сможем продолжить работу на сайте.
Как вы помните, я указывал номер - +79999999998. Конечно же его у меня нет - придется искать следующую уязвимость. Ранее, перед тем, как начать писать статью, я уже на временном номере удостоверился в том, что код всегда состоит из 4-цифр. Осталось удостовериться в наличие No Rate Limit.
Для этого вводим код, нажимаем на кнопку "Отправить". Перехватываем запрос при помощи Burp и направляем его в Intruder.
На следующей вкладке выбираем:
Payload Type - Number,
Диапазон - от 1000 до 9999
И запускаем атаку!
Остается ждать ответ, отличный от
Это не долго, спустя пару минут меня радует следующий результат:
Выполняем вход и видим, что номер успешно привязан к аккаунту:
В настройках, помимо личных данных, отображается адрес доставки, который можно самостоятельно задать в разделе "Настройки" - это отличный повод проверить наличие Stored XSS!
Вставляю следующий пэйлоад:
Возвращаюсь в "Обзор" и встречаю это:
Как можно заметить, в личном кабинете имеется возможность отправить заявку на оформление бонусной карты - я уверен, там также, наверняка, есть Blind XSS. Но мне уже не хочется регистрировать аккаунт на XSSHunter, так как это не имеет дальнейшего смысла (ведь профита я уже не получу за эту уязвимость - верно?).
Помимо этого, на страницах с товарами существует Blind SQLi, которую ни я, ни SQLMap, не смогли раскрутить. Вот вам ссылочка:
Автор: Moody
взято с канала @ Cybred
Начать следует с того, как был найден вышеназванный магазин с техникой от компании Xiaomi. А найден он был очень просто - через рекламу на Youtube. Я зашел на видеохостинг, вбил в поиске "Xiaomi Gaming Laptop" (уж очень мне захотелось заменить свой старый ПК на что - то более мобильное и производительное) и под третьим видео в топе обнаружил ссылку.
Это была реклама. А на рекламные ссылки я смотрю с интересом - порой, кроме приевшихся вставок про танки, самолеты, ставки на спорт и прочее, встречается что - нибудь необычное и даже интересное. Конечно же, такие проекты никогда не стоит рассматривать всерьез - однако, иногда, с них можно попробовать самим извлечь прибыль - неформально.
К сожалению, зайдя на сайт, я не испытал ничего, кроме чувства тоски, - высокие цены и скудный дизайн будто бы говорили мне покинуть его как можно скорее.
Я решил пойти дальше и удостоверившись в том, что он написан без использования новомодных фреймворков, я даже немного воодушевился и принялся искать баги, уже предвкушаю возможную выплату, частично покрывающую покупку нового ноутбука.
Первое, что сразу бросается в глаза - строка поиска. Я привык к тому, что, как правило, разработчики хоть бы немного осведомлены в области безопасности Web-приложений и не допускают оплошностей на главной странице сайта. Но я рискнул и вставил простейший пейлоад:
Код:
"><script>alert("@cybred")</script>
Стоит также отметить, что при серфинге по сайту, результаты внедрения HTML-кода сохранялись - каждый раз, переходя на новую страницу, я встречал свой порно-alert-баннер.
Переходим к регистрации на сайте. Форма выглядит так:
Ничего не бросается в глаза? - reCaptcha. Судя по тому, как аляписто выглядит сайт, я не был бы удивлен, если бы она была неправильно настроена. Чтобы убедиться в этом, я заполняю поля, отправляю запрос и перехватываю его при помощи Burp Suite.
Стираю значение ключа "g-recaptcha-response" и пробую отправить запрос.
Результат? Как вы уже видите, - Success!
Код:
{
"success":{
"id":399,
"modal":"codeConfimForm",
"text":"<h4>Нужно подвтерждение номера телефона</h4> <span>Пожалуйста, введите код из смс в следующем окне.</span>"
}
}
Увидев его, мне сразу же в голову пришла мысль - что, если значение поля пароль (а, возможно, и не только оно), вообще никак не фильтруется? Судя по тому, что я уже видел ранее, это возможно с большой долей вероятности.
Итак, теперь я регистрирую аккаунт с немного другими данными, а в качестве пароля указываю:
Код:
password123"
Please follow the link: https://google.com
Отправляю запрос, смотрю на пришедшее письмо и...
Бинго! Отсутствие фильтрации пароля открывает возможность DOS (отправляя очень длинную строку), либо возможность устроить масштабную фишинговую атаку на заранее заготовленный список Email-адресов.
Сразу после того, как мы мы зарегистрировали аккаунт, на сайте появляется всплавающее окно с просьбой ввести пришедший на телефон код для подтверждения регистрации - без его ввода мы не сможем продолжить работу на сайте.
Как вы помните, я указывал номер - +79999999998. Конечно же его у меня нет - придется искать следующую уязвимость. Ранее, перед тем, как начать писать статью, я уже на временном номере удостоверился в том, что код всегда состоит из 4-цифр. Осталось удостовериться в наличие No Rate Limit.
Для этого вводим код, нажимаем на кнопку "Отправить". Перехватываем запрос при помощи Burp и направляем его в Intruder.
На следующей вкладке выбираем:
Payload Type - Number,
Диапазон - от 1000 до 9999
И запускаем атаку!
Остается ждать ответ, отличный от
Код:
{
"error":{
"field":"code",
"text":"Неверный код!"
}
}
Код:
{
"success":{
"text":"<h4>Вы успешно подтвердили аккаунт!</h4> <span>Можете выполнить вход.</span>",
"modal":"loginForm"
}
}
В настройках, помимо личных данных, отображается адрес доставки, который можно самостоятельно задать в разделе "Настройки" - это отличный повод проверить наличие Stored XSS!
Вставляю следующий пэйлоад:
Возвращаюсь в "Обзор" и встречаю это:
Как можно заметить, в личном кабинете имеется возможность отправить заявку на оформление бонусной карты - я уверен, там также, наверняка, есть Blind XSS. Но мне уже не хочется регистрировать аккаунт на XSSHunter, так как это не имеет дальнейшего смысла (ведь профита я уже не получу за эту уязвимость - верно?).
Помимо этого, на страницах с товарами существует Blind SQLi, которую ни я, ни SQLMap, не смогли раскрутить. Вот вам ссылочка:
Код:
https://mi-xx.ru/remeshki-dlja-fitnes-brasletov?max_price=690&min_price=250&options[318][]=1&options[31][]=2243&options[342][]=2552&options[350][]=2583&options[351][]=2585&options[352][]=2573&options[777][]=4016
Автор: Moody
взято с канала @ Cybred