
Proof-of-concept 도구로, 대상에 제작된 페이로드를 전송하고 301/302 응답 및 Location 헤더를 검사하여 오픈 리다이렉트 취약점을 탐지합니다.
소규모 개념 증명 도구 — 대상에 특정 페이로드를 전송하고 301/302 리디렉션 응답을 확인하여 Location 헤더를 보고합니다.
이 저장소는 교육/연구 목적으로만 제공됩니다. 책임 있는 공개 정책을 준수하세요. 아래는 사용 및 빌드 지침입니다.
이 도구는 다음 페이로드를 추가하여 도메인에 요청을 보내며, 서버가 301(Moved Permanently) 또는 302(Found)로 응답하면 Location 헤더를 확인하여 잠재적 취약점을 탐지합니다.
페이로드: /public/..%2F%5cgoogle.com%2F%3f%2F..%2F..
이 프로그램은 CheckRedirect 함수를 통해 Go의 자동 리디렉션 추적을 비활성화하여 초기 응답을 검사할 수 있게 합니다.
다음 명령어로 실행 파일(Windows .exe)을 빌드할 수 있습니다:
# Linux/macOS
go build -o cve-2025-4123 main.go
# Windows (PowerShell 또는 CMD)
go build -o CVE-2025-4123.exe main.go
Usage: CVE-2025-4123.exe [https://example.com]
예시:
./CVE-2025-4123.exe https://target.example.com
프로그램은 다음을 수행합니다:
os.Args[1])에 페이로드를 추가하여 GET 요청을 전송합니다.Location 헤더를 출력합니다: VULN FOUND: <location>CVE-2025-4123 Not Found를 출력합니다.CheckRedirect 콜백을 통해 출력됩니다: Redirected to <URL>.성공적인 탐지 (예시):
VULN FOUND: https://google.com/
CheckRedirect 콜백을 통한 리디렉션 추적 출력:
Redirected to https://google.com/
http.Get은 301/302 리디렉션을 자동으로 추적합니다. 이 PoC에서는 CheckRedirect를 사용하여 자동 추적을 비활성화하고 Location 헤더에 직접 접근할 수 있게 합니다.Location 헤더가 항상 절대 URL은 아닐 수 있으며, 상대 경로나 다른 형식일 수 있습니다. 이러한 경우 url.Parse와 resp.Request.URL.ResolveReference를 사용하여 전체 URL을 구성하세요.--timeout 같은 플래그 추가.-o/--output 출력 옵션 추가.Location 헤더를 견고한 파싱/정규화로 처리.이 PoC가 실제 취약점을 탐지한 경우, 대상 조직의 보안 팀에 연락하여 책임 있게 보고하세요. 공개 전에 조직과 조율하세요.