Shikata Ga Nai

Private? There is no such things.

H2.CL request smugglingをやってみた

Hello there, ('ω')ノ

 

フロントエンドサーバがHTTP/2リクエストの長さがあいまいな場合でも。

ダウングレードするため、リクエストの密輸に対して脆弱で。

ラボを解決するには、リクエストの密輸攻撃を実行して。

被害者のブラウザがエクスプロイトサーバから。

悪意のあるJavaScriptファイルをロードし、alert(document.cookie)を呼び出して。

被害者のユーザは10秒ごとにホームページにアクセスして。

 

f:id:ThisIsOne:20220113041654p:plain

 

リクエストをリピータへ。

 

f:id:ThisIsOne:20220113041734p:plain

 

Content-Length:0ヘッダを含めて、HTTP/2リクエストの本文に。

任意のプレフィックスを密輸してみると。

送信するリクエストが404レスポンスを受信することを確認して。

バックエンドが密輸されたプレフィックスに。

後続のリクエストを追加したことを確認して。

 

f:id:ThisIsOne:20220113041948p:plain

 

次にGET /resourcesのリクエストを送信すると。

https://YOUR-LAB-ID.web-security-academy.net/resources/に。

リダイレクトされるので。

 

f:id:ThisIsOne:20220113042613p:plain

 

下記のリクエストを作成して、任意のHostヘッダとともに。

/resourcesのリクエストを密輸することに。

このプレフィックスをフロントエンドを超えて密輸すると。

接続時の後続のリクエストを任意のホストにリダイレクトできるので。

 

f:id:ThisIsOne:20220113042740p:plain

 

エクスプロイトサーバで、ファイルパスを/resourcesに変更して。

本文にalert(document.cookie)を入力し、エクスプロイトを保存して。

 

f:id:ThisIsOne:20220113042920p:plain

    

Hostヘッダがエクスプロイトサーバを指すようにして。

リクエストを数回送信し、エクスプロイトサーバへのリダイレクトを受信すると。

被害者がエクスプロイトサーバーにリダイレクトされて。

 

f:id:ThisIsOne:20220113045343p:plain

 

クリアできた。

 

f:id:ThisIsOne:20220113050933p:plain

 

Best regards, (^^ゞ