Когда код бежит быстрее, чем мысли программиста.
- Приветствие
- Изучение сайта и сбор информации
- Использование уязвимости
- Заключение
Приветствую всех кто заглянул на огонек, сегодня мы рассмотрим таск "Точка невозврата" из категории Веб codeby.games.
Изучение сайта и сбор информации.
Первое что мы видим попадая на сайт это форма регистрации:
Регистрируемся на сайте и входим в наш личный кабинет:
Здесь мы понимаем что есть баланс и возможность купить флаг. Так же есть форма для отправки ваучера.
Заглядываем в исходный код и видим тестовые ваучеры:
При вводе ваучеров каждый дает 100$, но нам все равно не хватает денег для покупки флага.
Здесь мы будем пробовать 'Race Conditions'. Это распространенный тип уязвимостей, тесно связанный с недостатками бизнес логики .
Они возникают, когда веб-сайты одновременно обрабатывают запросы без адекватных мер безопасности.
Использование уязвимости .
Мы воспользуемся двумя браузерами и одной учетной записью. Отправим один ваучер с одного браузера и сразу же со второго:
Здесь мы видим, что при отправке ваучера который должен был дать нам 100$, дал нам 200$.
Ваучер применился дважды, хотя не должен был.
Вводим оставшиеся ваучеры таким же способом и у нас получается такая картина:
Ура! Дальше мы просто нажимаем на кнопку BUY FLAG и покупаем его.
- Заключение
Это произошло из-за того, что при работе с ваучером не были применены механизмы синхронизации доступа к ресурсу (ваучеру), которые бы предотвратили одновременное применение его двумя браузерами в нашем случае. Каждый из браузеров смог пройти проверку (например, проверку на уникальность использования ваучера) и получил денежный бонус, так как сервер не успел обработать информацию об уже использованном ваучере перед обработкой второго запроса.
Довольно интересный вектор атаки, про который не стоит забывать и проверять его при тестировании.
Кто обратил внимание на данную статью и набравший большее количество баланса, отпишите в комментарии.
Будет очень интересно, так же увидеть решение способом через Burp.
До новых встреч!
- Приветствие
- Изучение сайта и сбор информации
- Использование уязвимости
- Заключение
Приветствую всех кто заглянул на огонек, сегодня мы рассмотрим таск "Точка невозврата" из категории Веб codeby.games.
Изучение сайта и сбор информации.
Первое что мы видим попадая на сайт это форма регистрации:
Регистрируемся на сайте и входим в наш личный кабинет:
Здесь мы понимаем что есть баланс и возможность купить флаг. Так же есть форма для отправки ваучера.
Заглядываем в исходный код и видим тестовые ваучеры:
При вводе ваучеров каждый дает 100$, но нам все равно не хватает денег для покупки флага.
Здесь мы будем пробовать 'Race Conditions'. Это распространенный тип уязвимостей, тесно связанный с недостатками бизнес логики .
Они возникают, когда веб-сайты одновременно обрабатывают запросы без адекватных мер безопасности.
Использование уязвимости .
Мы воспользуемся двумя браузерами и одной учетной записью. Отправим один ваучер с одного браузера и сразу же со второго:
Здесь мы видим, что при отправке ваучера который должен был дать нам 100$, дал нам 200$.
Ваучер применился дважды, хотя не должен был.
Вводим оставшиеся ваучеры таким же способом и у нас получается такая картина:
Ура! Дальше мы просто нажимаем на кнопку BUY FLAG и покупаем его.
- Заключение
Это произошло из-за того, что при работе с ваучером не были применены механизмы синхронизации доступа к ресурсу (ваучеру), которые бы предотвратили одновременное применение его двумя браузерами в нашем случае. Каждый из браузеров смог пройти проверку (например, проверку на уникальность использования ваучера) и получил денежный бонус, так как сервер не успел обработать информацию об уже использованном ваучере перед обработкой второго запроса.
Довольно интересный вектор атаки, про который не стоит забывать и проверять его при тестировании.
Кто обратил внимание на данную статью и набравший большее количество баланса, отпишите в комментарии.
Будет очень интересно, так же увидеть решение способом через Burp.
До новых встреч!