Hostヘッダーを改ざんする
Fiddlerはブラウザから送信されたHTTPリクエストを途中で補足し、内容を改ざんしてサーバーに送信することができます。
しかしながら、HTTPリクエストのどの箇所でも改ざんできるわけではありません。
また、改ざんするために工夫が必要な箇所もあります。
Hostヘッダーを改ざんしたHTTPリクエストを送信するには、ちょっとした工夫が必要になります。
以下はその手順です。
- メニューからRules->Customize Rules...を選択し、CustomRules.jsファイルをエディタで開きます。
- Handlerクラスの中に以下のコードを追加します。
static var tamperHost:String = "";
- OnBeforeRequestメソッドの中に以下のコードを追加します。
if(tamperHost != ""){
oSession["x-overridehost"] = oSession.oRequest.host;
oSession.oRequest.headers.Remove("Host");
oSession.oRequest.headers.Add("Host",tamperHost);
}
- OnExecActionメソッド中のswitch構文の中に以下のコードを追加します。
case "thost":
if(sParams.Length > 1){
tamperHost = sParams[1];
}else{
tamperHost = "";
}
break;
- ファイルを保存してエディタを終了します。
- QuickExecコマンド(セッション一覧の下の黒いテキスト入力)にて、thost tamperhost.domain[Enter]と打ち込みます。([Enter]はEnterキーです。)
- 以降のリクエストのHostヘッダーはtamperhost.domainに改ざんされます。
- 元に戻すにはQuickExecコマンドにて、thost[Enter]と打ち込みます。([Enter]はEnterキーです。)
なお、何のためにHostヘッダーを改ざんするのか分かっている方だけお使いください。
くれぐれも悪用厳禁!!でお願いします。
(2012/10/27)
何気なくCustomRules.jsを眺めていたら、QuickExecコマンドの中にoverridehostがあるのを見つけてしまいました。
デフォルトで用意されていたのですね…orz