![]() |
Когда код бежит быстрее, чем мысли программиста.
https://forum.antichat.xyz/attachmen...3dfaf5aef7.png - Приветствие - Изучение сайта и сбор информации - Использование уязвимости - Заключение Приветствую всех кто заглянул на огонек, сегодня мы рассмотрим таск "Точка невозврата" из категории Веб antichat. Изучение сайта и сбор информации. Первое что мы видим попадая на сайт это форма регистрации: https://forum.antichat.xyz/attachmen...c2bd026e1b.png Регистрируемся на сайте и входим в наш личный кабинет: https://forum.antichat.xyz/attachmen...5c24701c37.png Здесь мы понимаем что есть баланс и возможность купить флаг. Так же есть форма для отправки ваучера. Заглядываем в исходный код и видим тестовые ваучеры: https://forum.antichat.xyz/attachmen...0aea731bca.png При вводе ваучеров каждый дает 100$, но нам все равно не хватает денег для покупки флага. Здесь мы будем пробовать 'Race Conditions'. Это распространенный тип уязвимостей, тесно связанный с недостатками бизнес логики . Они возникают, когда веб-сайты одновременно обрабатывают запросы без адекватных мер безопасности. Использование уязвимости . Мы воспользуемся двумя браузерами и одной учетной записью. Отправим один ваучер с одного браузера и сразу же со второго: https://forum.antichat.xyz/attachmen...a9bcdfe636.png Здесь мы видим, что при отправке ваучера который должен был дать нам 100$, дал нам 200$. Ваучер применился дважды, хотя не должен был. https://forum.antichat.xyz/attachmen...840a4d57fc.png Вводим оставшиеся ваучеры таким же способом и у нас получается такая картина: https://forum.antichat.xyz/attachmen...b810b90059.png Ура! Дальше мы просто нажимаем на кнопку BUY FLAG и покупаем его. - Заключение Это произошло из-за того, что при работе с ваучером не были применены механизмы синхронизации доступа к ресурсу (ваучеру), которые бы предотвратили одновременное применение его двумя браузерами в нашем случае. Каждый из браузеров смог пройти проверку (например, проверку на уникальность использования ваучера) и получил денежный бонус, так как сервер не успел обработать информацию об уже использованном ваучере перед обработкой второго запроса. Довольно интересный вектор атаки, про который не стоит забывать и проверять его при тестировании. Кто обратил внимание на данную статью и набравший большее количество баланса, отпишите в комментарии. Будет очень интересно, так же увидеть решение способом через Burp. До новых встреч! |
Сколько ни пробовал не получилось ни так, ни через Burp. Только при помощи скрипта:
import os os.fork() #2 os.fork() #4 os.fork() #8 os.fork() #16 os.fork() #32 os.fork() #64 os.fork() #128 print os.popen('php -r ' + \ '"echo file_get_contents(\'http://62.173.140.174:16023/index.php?voucherCode=5mbhxgw&uid=38493860831191\' );"').read() После отработки скрипта, перегружаем страницу. |
Цитата:
Была надежда что получится в Burp, там в Repeater есть возможность отправки группового параллельного запроса, но не вышло. Логика немного другая, но все же интересно |
Цитата:
|
Тоже пробовал через бурп, потом плюнул и написал такой скрипт с использованием многопоточности:
Python: Код:
import |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Их прямо раздражала эта картинка. |
| Время: 09:45 |