

Bolt는 개발 베타 단계에 있으므로 버그가 있을 수 있습니다. 이 도구의 프로덕션 사용은 권장되지 않습니다. Pull requests 및 issues를 환영합니다. 관심이 있으시면 이 저장소를 Watch로 설정하는 것을 제안합니다.
Bolt는 대상 웹사이트를 지정된 깊이까지 크롤링하고, 발견된 모든 HTML 양식을 데이터베이스에 저장하여 추가 처리를 수행합니다.
이 단계에서 Bolt는 충분히 강력하지 않은 토큰과 보호되지 않은 양식을 찾아냅니다.
이 단계는 재생 공격 시나리오 탐지에 중점을 두며, 토큰이 두 번 이상 발급되었는지 확인합니다.
또한 모든 토큰 간의 평균 Levenshtein 거리를 계산하여 유사한지 확인합니다.
토큰은 또한 250개 이상의 해시 패턴 데이터베이스와 비교됩니다.
이 단계에서는 단일 웹페이지에 100개의 동시 요청을 보내 동일한 토큰이 생성되는지 확인합니다.
이 단계는 CSRF 보호 메커니즘의 능동적 테스트에 전념합니다. 여기에는 모바일 브라우저에 대한 보호 존재 여부 확인, 자체 생성 토큰으로 요청 제출, 토큰이 특정 길이까지 확인되는지 테스트 등이 포함되지만 이에 국한되지는 않습니다.
이 단계에서는 토큰이 실제로 무작위인지 확인하기 위해 다양한 통계적 검사가 수행됩니다. 이 단계에서 다음과 같은 테스트가 수행됩니다:
Bolt를 사용하여 웹사이트에서 CSRF를 스캔하는 것은 다음과 같이 간단합니다:
python3 bolt.py -u https://github.com -l 2
여기서 -u는 URL을 제공하는 데 사용되고 -l은 크롤링 깊이를 지정하는 데 사용됩니다.
기타 옵션 및 스위치:
-t 스레드 수--delay 요청 간 지연 시간--timeout HTTP 요청 시간 초과--headers HTTP 헤더 제공해시 탐지를 위한 정규 표현식은 hashID에서 가져왔습니다.
비트 수준 엔트로피 테스트는 highfestiva의 Python 구현 통계 테스트에서 가져왔습니다.