sWebMachineGun.exe実践編
「パスワード変更画面の場合1」では、パスワードだけでしたが、パスワード以外の変数もある場合、パスワード以外の変数の置換中に、パスワードも変更されてしまう。
その際、「旧パスワード」は置換後文字列ではないので、そういう時にどうするか。
置換文字列から元に戻すリクエストと、元々の更新パスワードを元に戻すリクエストの二つを用意する。
という方法もあるけど・・・
ポイントは、sWebMachineGun.exeでは、マクロ「%Qst%~%Qend%」という置換対象が重複変数の時は、「%R%」と同じようにふるまい、そうでない場合は「~」の部分に置き換わるというマクロがあるので、それを使う
診断対象
こんな感じ
変数「NewPassword」と「NewPasswordConfirm」は同時に置換していく必要があるが、重複と異なる「電話番号」という変数の存在が「パスワード変更画面の場合1」との違いとなる
sWebMachineGun.exeの設定
メインの設定は、HTTPリクエストの設定と、置換方法の設定
sWebMachineGun.exeの設定1
「Request」タブに、二つのHTTPリクエストを設定する
最初は置換処理のメインとなるHTTPリクエスト
この画面は、「パスワード変更画面の場合1」とかと同じなので、特に説明は不要だろう
二つ目は、もしパスワードが更新されたときに備えて、再び元のパスワードに戻すリクエストが必要。
そうしないと、一度パスワード更新に成功してしまうと、それ以降は「既存のパスワードと一致しません」というエラーばかり出て、脆弱性診断にはならない
「直近5回のパスワードには戻せません」というメッセージが表示されるようなら、リクエストを6回分用意して、最終的に元のパスワードに戻す必要があるかもしれない
変数「oldPassword」の値が「%Qst%newPassword%Qend%」となっているのが「パスワード変更画面の場合1」と違うところ。
これは、置換対象が重複パラメータだった場合は、置換後文字列に置き換わり、そうでない場合は「newPassword」に置き換わる。
sWebMachineGun.exeの設定2
「Setting」タブは「パスワード変更画面の場合1」と同じなので、説明は不要だろう
「Duplication」というボタンを押下して、ダイアログを表示させる
sWebMachineGun.exeの設定3(Duplicationの設定)
「Setting」タブの「Duplication」ボタンの押下で表示されたダイアログ/ウィンドウも「パスワード変更画面の場合1」と同じなので、説明は不要だろう
sWebMachineGun.exeの実行
「Execute」ボタンで、実行できるのですが、結果はこんな感じで、変数「Tel」の時のマクロ「%Qst%~%Qend%」は「~」の部分、つまり「newPassword」になっている
置換対象変数が重複パラメータの時はマクロ「%Qst%~%Qend%」は置換後文字列になっている