LoginSignup
0
0

置換したリクエストとは別のレスポンスを検査する場合(CSRFトークン)

Last updated at Posted at 2024-05-13

sWebMachineGun.exe実践編

置換したリクエストとは別のレスポンスを検査する場合で、今度はCSRFトークンによる画面遷移制御が行われている場合

診断対象

こんな感じ

入力画面 確認画面 完了画面
POST /sanaki/yourdata/testConfirm.asp HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

Email=test@example.com&Tel=03-0000-0000
POST /sanaki/yourdata/testComplete.asp HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

csrfToken=【直前のHTTPレスポンスに書かれていたCSRFトークン】

入力画面→確認画面→完了画面

そして、完了画面に遷移する際には、hiddenタグのCSRFトークンを正しく返す必要がある、、、というような対象

sWebMachineGun.exeの設定

メインの設定は、HTTPリクエストの設定と、置換方法の設定

sWebMachineGun.exeの設定1

「Request」タブに、二つのHTTPリクエストを設定して、
判定対象リクエストをNo1(2つ目のリクエスト)に設定する

一つ目はこんな感じ

007.png

リクエストとしては「一つのHTTPリクエスト(一番シンプル)」と同じ。

二つ目はこんな感じ

012.png

  • 変換対象ページが No0
  • 判定対象ページが No1

となっている。
こういう設定にする方法は後述している

ちなみに「AutoTarget」がオフになっているが、オンにすると、変換対象/判定対象がGUIで表示されているページに自動で追随するので、オフにしている。

sWebMachineGun.exeの設定2

「Setting」タブの置換方法は、キャプチャ画像を分かりやすくするために2つだけ。

  • 「値」の前方に「'"'&quot;`a--><s>【マーキング文字】【変数名】/</s>」を追加する
  • 「値」の前方に「'」を追加する

「お勧め」ボタンにはいろいろな置換方法が用意してありますよ。

「UseName」をチェックして、パラメータの解析(名前と値を解析)を実施するように指示する

009.png

この画面で、変換対象ページをNo0と指定している

sWebMachineGun.exeの設定3

010.png

「Judge/Regex」で、判定対象ページをNo1に指定している

sWebMachineGun.exeの設定4(CSRFトークンの設定)

「GeneralSetting」タブの「CSRF Token」ボタンで、表示されるダイアログで設定する。

013.png

画面では、

  • 抽出方法として、csrfTokenという名前のhiddenタグ(またはAタグのクエリ文字列)
  • 貼付方法として、csrfTokenという名前のポストデータ(またはクエリ文字列)

ということになっている

sWebMachineGun.exeの実行

「Execute」ボタンで、実行できるのですが、結果はこんな感じで、各変数に対して、各置換方法を与えたHTTPリクエストを送信し、そのレスポンスからCSRFトークンを探し出し、次のリクエストにそのトークンを埋め込んでいることが分かると思う。

014.png

015.png

ちなみに、CSRFトークンの設定画面で「Null Token」がオンとなっていたので、

  • トークンの変数の値が空文字列
  • トークンの変数自体か存在しない

というパターンも実行している

sWebMachineGun.exe Index

sWebMachineGun.exe のメインメニューに戻る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0