Hello there, ('ω')ノ
HTTPリクエストの密輸、基本的なTE.CLの脆弱性を。
バックエンドサーバはチャンクエンコーディングをサポートしていなくて。
フロントエンドサーバは、GETまたはPOSTメソッドを使用していないと拒否して。
ラボを解決するには、リクエストをバックエンドサーバに密輸して。
バックエンドサーバによって処理される次のリクエストが。
GPOSTメソッドを使用しているように見えるようにと 。
フィールドを手動で修正するのは難しい場合があるので。
Burpの拡張機能で、HTTP Request Smugglerが役立つようで。
今回は、インストールだけしておいて時期をみて使ってみようかと。
ではまず、サイトにアクセスして。
リクエストをリピータへ。
GETをPOSTに変更して。
これは、最後にバックエンドにGPOST要求を受信させるために。
下記を追加して。
Content-Type: application/x-www-form-urlencoded
Content-length: 4
Transfer-Encoding: chunked
5c
GPOST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
x=1
0
Sendするとタイムアウトエラーが。
チャンクデータを構築するには、最後に2つのCRLFを追加する必要があるので。
0のあとに改行(\ r \ n \ r \ n)を2つ入れて。
一回目のSendを。
フロントサーバがTE: chunkedに従って5c(=16進数なので92)~0の行を処理して。
バックエンドサーバに転送して。
二回目にSendすると。
バックエンドサーバがCL: 4に従って処理をするので。
5c\r\nが、最初のリクエストの本文であると見なされて。
次からが2番目のリクエストであるため。
認識されないHTTPメソッドとしてGPOSTに応答して。
クリアできた。
Best regards, (^^ゞ