Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nosurf-cve-2025-46721 — CVE-2025-46721에 대한 개념 증명 및 분석: nosurf Go 라이브러리의 동일 출처 검사가 제대로 작동하지 않아 발생하는 CSRF 취약점이며, 작동하는 익스플로잇 데모를 포함합니다. | Kitploit
도구/GitHubGitHub/justinas/nosurf-cve-2025-46721
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubjustinas/nosurf-cve-2025-46721

nosurf-cve-2025-46721

CVE-2025-46721에 대한 개념 증명 및 분석: nosurf Go 라이브러리의 동일 출처 검사가 제대로 작동하지 않아 발생하는 CSRF 취약점이며, 작동하는 익스플로잇 데모를 포함합니다.

저장소 보기
331년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-46721: justinas/nosurf의 동일 출처 검사 기능 불량으로 인한 CSRF

  • 무슨 일이 있었나요?
  • 영향을 받나요?
  • PoC
  • 패치
  • 감사의 말

무슨 일이 있었나요?

nosurf 1.2.0 이전의 모든 버전은 들어오는 요청에 대해 동일 출처 검사를 적용하지 못했습니다. 이는 Go 표준 라이브러리의 net/http.Request 타입에 있는 .URL.Scheme 필드를 사용하여 요청이 HTTPS를 통해 제공되는지 먼저 확인한 후에만 동일 출처 검사를 적용했기 때문입니다. 앞서 언급한 Scheme 필드는 들어오는 요청에 대해 Go HTTP 서버가 채우지 않습니다:

root@kitploit:~
// For server requests, the URL is parsed from the URI
// supplied on the Request-Line as stored in RequestURI.  For
// most requests, fields other than Path and RawQuery will be
// empty.

https://pkg.go.dev/net/http#Request

일반적으로 Go는 요청이 TLS를 통해 발생하는지 알 수 없기 때문입니다 (TLS 종료 리버스 프록시 등의 가능성으로 인해).

이로 인해 공격자가 귀하의 웹사이트에 안전하지 않은 교차 출처 요청을 보낼 수 있습니다.

영향을 받나요?

동일 출처 검사를 구현하는 것 외에도 nosurf는 이중 제출 쿠키 패턴을 사용하여 CSRF로부터 추가로 보호합니다. 즉, 변형 교차 출처 요청을 성공적으로 수행하려면 공격자는 귀하의 웹사이트 또는 귀하 웹사이트의 하위 도메인에 있는 페이지의 콘텐츠를 제어해야 합니다. 이는 XSS를 통해 달성되거나, 귀하가 웹사이트 사용자에게 HTML 콘텐츠 제어권을 의도적으로 부여하는 경우 (예: 사용자가 alice.example.com에서 웹사이트를 호스팅할 수 있도록 허용하는 호스팅 제공업체 example.com인 경우)에 가능합니다.

이 저장소의 PoC는 후자의 경우, 즉 공격자가 웹사이트 주요 도메인의 하위 도메인에서 콘텐츠를 제어하는 상황에서의 공격을 보여줍니다.

PoC

Go와 Caddy가 필요합니다. 수동으로 서버를 실행하세요:

root@kitploit:~
$ go run attacker.go & go run target.go & caddy run

또는 Process Compose를 통해:

root@kitploit:~
$ process-compose

https://attacker.target.localhost를 방문하세요. 버튼을 클릭하여 https://target.localhost로 폼을 제출하고 요청이 성공적으로 완료되는 것을 확인하세요.

패치

이 문제에 대한 수정 사항은 nosurf 1.2.0에서 릴리스되었습니다.

감사의 말

문제를 보고해 주신 Patrick O'Doherty에게 감사드립니다.

도구 다운로드