Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/justinas/nosurf-cve-2025-46721
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育
GitHubjustinas/nosurf-cve-2025-46721

nosurf-cve-2025-46721

リポジトリを見る
1年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

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 は 二重送信 Cookie パターン を使用して CSRF からも保護しています。 これは、変更を伴うクロスオリジンリクエストを成功させるには、 攻撃者があなたのウェブサイト上のページ、またはあなたのウェブサイトのサブドメイン上の ページのコンテンツを制御している必要もあることを意味します。 これは XSS によって達成される可能性があります。または、あなたがウェブサイトのユーザーに HTML コンテンツの制御を意図的に与えている場合です (例: あなたがホスティングプロバイダー example.com であり、ユーザーが alice.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 に感謝します。

ツールをダウンロード