

Bolt находится на стадии бета-разработки, что означает возможное наличие ошибок. Любое использование этого инструмента в производственной среде не рекомендуется. Принимаются пулл-реквесты и сообщения об ошибках. Также рекомендую поставить репозиторий на отслеживание, если он вам интересен.
Bolt обходит целевой веб-сайт на заданную глубину и сохраняет все найденные HTML-формы в базе данных для дальнейшей обработки.
На этом этапе Bolt определяет токены, которые недостаточно надёжны, а также формы, которые не защищены.
Этап ориентирован на выявление сценариев атаки с повторным воспроизведением (replay attack) и, соответственно, проверяет, выдавался ли токен более одного раза. Также вычисляется среднее расстояние Левенштейна между всеми токенами для выявления их схожести. Токены также сравниваются с базой данных из 250+ шаблонов хэшей.
На этом этапе на одну страницу отправляется 100 одновременных запросов, чтобы проверить, генерируются ли для них одинаковые токены.
Данный этап посвящён активному тестированию механизма защиты CSRF. Он включает (но не ограничивается) проверку наличия защиты для мобильных браузеров, отправку запросов с самостоятельно сгенерированным токеном и проверку того, проверяется ли длина токена.
На этом этапе выполняются различные статистические проверки, чтобы определить, действительно ли токен случаен. Во время этого этапа выполняются следующие тесты:
Сканировать веб-сайт на наличие CSRF с помощью Bolt так же просто, как выполнить:
python3 bolt.py -u https://github.com -l 2
Где -u указывает URL, а -l задаёт глубину обхода.
Другие опции и флаги:
-t количество потоков--delay задержка между запросами--timeout тайм-аут HTTP-запроса--headers задать HTTP-заголовкиРегулярные выражения для определения хэшей взяты из hashID. Тесты на энтропию на уровне битов взяты из реализации статистических тестов на Python от highfestiva.