sWebMachineGun.exe実践編
パスワード変更画面では、「新しいパスワード」と「確認のためのパスワード」の二つを同時に置換する必要がある
ポイント1は、sWebMachineGun.exeでは、「DuplicationList」という重複パラメータ置換指定があるので、それを使うこと
ポイント2は、sWebMachineGun.exeでは、マクロ「%R%」が「置換後文字列」というマクロなので、それを使って、更新したパスワードを元に戻すこと
診断対象
こんな感じ
変数「NewPassword」と「NewPasswordConfirm」は同時に置換していく必要がある
さらに、再度「パスワード変更を実施して、元のパスワードに戻す」という処理を入れないと、一度パスワード変更に成功してしまうと「既存のパスワードが違います」エラーで溢れることになる
sWebMachineGun.exeの設定
メインの設定は、HTTPリクエストの設定と、置換方法の設定
sWebMachineGun.exeの設定1
「Request」タブに、二つのHTTPリクエストを設定する
最初は置換処理のメインとなるHTTPリクエスト
この画面は、「一つのHTTPリクエスト(一番シンプル)」とかと同じなので、特に説明は不要だろう
二つ目は、もしパスワードが更新されたときに備えて、再び元のパスワードに戻すリクエストが必要。
そうしないと、一度パスワード更新に成功してしまうと、それ以降は「既存のパスワードと一致しません」というエラーばかり出て、脆弱性診断にはならない
「直近5回のパスワードには戻せません」というメッセージが表示されるようなら、リクエストを6回分用意して、最終的に元のパスワードに戻す必要があるかもしれない
変数「oldPassword」の値が「%R%」となっているのは、マクロで置換後文字列を意味しているので、これでパスワードは元に戻ることになる
sWebMachineGun.exeの設定2
「Setting」タブの置換方法は、キャプチャ画像を分かりやすくするために2つだけ。
- 「値」の前方に「'"'"`a--><s>【マーキング文字】【変数名】/</s>」を追加する
- 「値」の前方に「'」を追加する
「お勧め」ボタンにはいろいろな置換方法が用意してありますよ。
「UseName」をチェックして、パラメータの解析(名前と値を解析)を実施するように指示する
「Duplication」というボタンを押下して、ダイアログを表示させる
sWebMachineGun.exeの設定3(Duplicationの設定)
「Setting」タブの「Duplication」ボタンの押下で表示されたダイアログ/ウィンドウ
- 左上が、編集中の対象変数の名前。
- 対象変数には「ArgName1」という変数名の名前。
- 対象変数には「ArgName2」という変数名の名前の中のJSON/XML/BSONの名前。
- 例えば「ArgName1」が「name1」で「ArgName2」が「name2.name3」だとすると、変数「name1」の値がJSONになっていて、JPathで「name2.name3」が重複する変数の値。ということになる
- ボディ全体がJSON/XML/BSONの場合は、「ArgName1」は空欄にする
- タイプは、とりあえず「normal」を選択
- 右上は、対象変数の組。
- 「Add」ボタンで、下側の一覧に追加される
- 画面では「password」と「passwordConfirm」という二つの変数が組となっている
- 画面下が、セットされた重複変数の組を示す→ここまでセットして、リクエストに反映される
- 「Set」ボタンで、登録が完了する
sWebMachineGun.exeの実行
「Execute」ボタンで、実行できるのですが、結果はこんな感じで、変数「NewPassword」の時は変数「NewPasswordConfirm」も一緒に置換されるていることが分かると思う。
2つ目のリクエストテンプレートの「%R%」も置換後文字列に置き換わっている事が分かると思う。