Shikata Ga Nai

Private? There is no such things.

CSRF vulnerability with no defensesをやってみた

Hello there, ('ω')ノ

 

まずは、CSRFについて。

IPA「安全なウェブサイトの作り方」より抜粋すると。

ログ インした利用者からのリクエストについて。

その利用者が意図したリクエストであるかどうかを識別する仕組みを持たないと。

外部サイトを経由した悪意のあるリクエストを受け入れてしまう場合があって。

このようなウェブサイトにログンした利用者は。

利用者が予期しない処理を実行させられてしまう可能性があって。

 

IPA「安全なウェブサイトの作り方」より抜粋

 

簡単に言えば、CookieベースのセッションWebサイトで。

いくつかのオプションをクリックするようにユーザーを誘導して。

ユーザのアクセス許可を必要とする特定のアクションをトリガーして。

(アカウントシークレットの変更、電子メールのリセットなど)

 

では、防御のないCSRFの脆弱性を。

下記でログインして。

  carlos/montoya

 

f:id:ThisIsOne:20210209134434p:plain

 

メールアドレスを変更して。

 

f:id:ThisIsOne:20210209134606p:plain

 

メールアドレスを送信するリクエストをPoCへ。

 

f:id:ThisIsOne:20210209134720p:plain

 

Optionsで、Include auto-submit scriptにチェックをいれることで。

 

f:id:ThisIsOne:20210209134807p:plain

 

Regenerateをクリックするとスクリプトが追加されて。

 

f:id:ThisIsOne:20210209134920p:plain

 

Copy HTMLで、CSRF HTMLをコピーして。

 

f:id:ThisIsOne:20210209135222p:plain

 

エクスプロイトサーバを開いて。

コピーしたCSRF HTMLを張り付けて実行すると。

 

f:id:ThisIsOne:20210209135336p:plain

 

クリアできたようで。

 

f:id:ThisIsOne:20210209135400p:plain

 

ちなみにView exploitをクリックすると。

途中にボタンが表示されるのが確認できて。

このボタンが自動送信されて。

 

f:id:ThisIsOne:20210209135650p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210209135607p:plain

 

また、エクスプロイトサーバで送信するリクエストと。

 

f:id:ThisIsOne:20210209135932p:plain

 

はじめに正規のページで送信したリクエストで比較した結果は以下の通りで。

OriginとRefererのアドレスが違っていることが確認できて。

 

f:id:ThisIsOne:20210209140324p:plain

 

Best regards, (^^ゞ