
Prime 사이트 간 요청 위조(CSRF) 감사 및 익스플로잇 도구 키트.
XSRFProbe 는 고급 Cross-Site Request Forgery (CSRF/XSRF) 감사 및 익스플로잇 툴킷입니다. 강력한 크롤링 엔진과 다양한 체계적인 검사를 갖추고 있어 대부분의 CSRF 취약점, 관련 우회 기법을 탐지하고 발견된 각 취약점에 대한 실행 가능한 개념 증명을 생성할 수 있습니다. XSRFProbe 작동 방식에 대한 자세한 내용은 위키의 XSRFProbe 내부 구조를 참조하세요.
XSRFProbe 위키 • 시작하기 • 일반 사용법 • 고급 사용법 • XSRFProbe 내부 구조 • 갤러리
Origin: null) 및 메서드 재정의, Content-Type 우회를 통해 Referer 및 Origin 검증을 검사합니다.--max-urls, --max-depth, --crawl-timeout으로 구성 가능) 기능을 갖춘 강력한 크롤러와 함께 작동합니다.XSRFProbe가 실행하는 모든 검사에는 고유 식별자가 있습니다. 이 ID는 콘솔 출력에 표시되며(예: [T6] VULNERABLE: ...) JSON 보고서의 각 발견 항목에 test_id 필드로 저장됩니다(severity 및 관련 details 아래의 exploitability 참고 사항과 함께). 따라서 각 발견 항목은 이를 생성한 정확한 테스트에 매핑됩니다.
S*검사는 선택적 헤드리스 브라우저 통합(--browser)이 필요합니다.T*/M*/R*/O*는 응답 차이 비교/벤치마크 엔진에 의해 제어되는 HTTP 수준 검사입니다.
실제 환경에서 XSRFProbe가 작동하는 몇 가지 사례를 살펴보세요:
XSRFProbe는 단일 명령어로 쉽게 설치할 수 있습니다:
pip install xsrfprobe
pip install .
xsrfprobe --help
--browser, --auto-validate-poc)를 위해서는 추가로 geckodriver가 PATH에 있거나 --geckodriver-path로 지정되어 있어야 합니다.xsrfprobe-output 폴더가 생성됩니다. 이 폴더 아래에서 스캔 중 수집된 상세 로그와 정보를 볼 수 있습니다(기계 판독 가능 보고서를 위해 --json 전달).XSRFProbe는 현재 v3.0.0이며, 해당 작업은 GNU 일반 공중 라이선스 (GPLv3)에 따라 사용이 허가됩니다.
이 도구를 실제 사이트에서 사용하지 마십시오!
이 도구는 사이트를 손상시킬 수 있는 모든 종류의 양식 제출을 자동으로 수행하도록 설계되었기 때문입니다. 때로는 데이터베이스를 손상시키거나 사이트에 DoS를 유발할 가능성이 있습니다.
테스트는 폐기 가능한/더미 설정/사이트에서 수행하십시오!
사전 상호 동의 없이 웹사이트 테스트를 위해 XSRFProbe를 사용하는 것은 불법 행위로 간주될 수 있습니다. 모든 관련 지역, 주 및 연방 법률을 준수하는 것은 최종 사용자의 책임입니다. 저자는 어떠한 책임도 지지 않으며 이 프로그램의 오용이나 손해에 대해 책임을 지지 않습니다.
이 프로젝트는 Cross-Site Request Forgery 공격에 대한 전적으로 제 연구와 웹 애플리케이션 경험을 바탕으로 합니다. 이 툴킷이 어떻게 구축되었는지 이해하는 데 도움이 되도록 소스 코드를 살펴볼 수 있습니다. 유용한 풀 리퀘스트, 아이디어 및 이슈를 환영합니다. XSRFProbe가 어떻게 개발되고 있는지 확인하려면 개발 보드를 확인하세요.
♡로 제작: @0xInfection
| ID | 분류 | 검사 항목 |
|---|
D1 | 토큰 존재 여부 | Anti-CSRF 토큰 없음 (일반 요청 위조) |
D2 | 토큰 존재 여부 | 로그인 양식에 CSRF 토큰 없음 (로그인 CSRF) |
T2 | 토큰 변조 | 검증이 요청 메서드에 연결됨 (GET ↔ POST 전환) |
T3 | 토큰 변조 | 토큰을 완전히 생략할 수 있음 |
T4 | 토큰 변조 | 토큰이 사용자 세션에 연결되지 않음 (세션 간 재사용) |
T5 | 토큰 변조 | 토큰이 비세션 쿠키와 연결됨 (예: csrfKey) |
T6 | 토큰 변조 | 단순 이중 제출 쿠키 (cookie == body, 바인딩 없음) |
T7 | 토큰 변조 | 빈 토큰 값 허용 |
T8 | 토큰 변조 | 사용자 정의 헤더 토큰 생략 또는 위조 가능 |
M1 | 메서드 / Content-Type | _method 매개변수를 통한 HTTP 메서드 재정의 |
M2 | 메서드 / Content-Type | X-HTTP-Method-Override 헤더를 통한 HTTP 메서드 재정의 |
M4 | 메서드 / Content-Type | 대체 Content-Type을 통한 검증 우회 |
R0 | Referer | 양식 제출 시 Referer 헤더 미검증 |
R1 | Referer | 헤더 생략을 통한 Referer 검증 우회 |
R2a | Referer | Referer 정규식 우회 — 공격자 서브도메인에 대상 포함 |
R2b | Referer | Referer 정규식 우회 — 쿼리 문자열에 대상 포함 |
R2c | Referer | Referer 정규식 우회 — 경로에 대상 포함 |
O1 | Origin | Origin: null을 통한 Origin 검증 우회 |
O2 | Origin | 서브도메인 트릭을 통한 Origin 검증 우회 |
O3 | Origin | 헤더 생략을 통한 Origin 검증 우회 |
S2 | SameSite (브라우저) | 클라이언트 측 리디렉션 가젯을 통한 SameSite=Strict 우회 |
S3 | SameSite (브라우저) | 형제 서브도메인의 XSS를 통한 SameSite=Strict 우회 |
S4 | SameSite (브라우저) | 쿠키 갱신/OAuth 흐름을 통한 SameSite=Lax 우회 |
C1 | 쿠키 상태 | 쿠키 SameSite 속성 분석 (None/Lax/Strict) |
C2 | 쿠키 상태 | 쿠키에 SameSite 속성 미설정 |
E1 | 토큰 강도 | 약한/구조화된 해시 인코딩 사용 토큰 |
A1 | 토큰 강도 | 스캔 후 토큰 예측 가능성/위조 가능성 분석 |