Shikata Ga Nai

Private? There is no such things.

Bypassing WAF with incorrect proxy settings for Hunting Bugs.を訳してみた

Hello there, ('ω')ノ

 

ハンティングバグのプロキシ設定が正しくない状態でWAFをバイパスするを。

 

脆弱性:

 URL検証バイパス

 

記事:

 https://shaurya-sharma.medium.com/bypassing-waf-with-incorrect-proxy-settings-for-hunting-bugs-3449b7716f59

 

ターゲットシステムに次のアドレスがあるとして。

 "https://targetdomain"

 

 偶然にも、サイトでの認証を担当するサブドメインでいくつかの。

CSSおよびJavaScriptリソースが利用可能であることに気付いて。

奇妙なことに、エンドノード(のようなもの)を参照しているときに。

サーバからHTTP 404応答を受信したため。

WAF(Webアプリケーションファイアウォール)の存在が疑われて。

 "https://auth.targetdomain/vulnerable_endpoint?param=evilly_RCE_payload"

 

ホスト上のアプリケーションの1つを見ると。

 例:https://targetdomain/appname/appname

 

アドレス「https://auth.targetdomain」で認証を取得したので。

認証中に別の奇妙なことに気づいて。

 

ある時点で、次のようなアドレスへのリダイレクト:

 “https://targetdomain/?cfru=aHR0cHM6Ly90YXJnZXRkb21haW4vYXBwbmFtZQ==

 

文字列「aHR0cHM6Ly90YXJnZXRkb21haW4vYXBwbmFtZQ==」は明示的に。

Base64でエンコードされていて。

デコード後、このペイロードは、認証を開始する前にアクセスしようとした。

https://targetdomain/appname」アドレスにすぎないことが判明して。

 

 

リソースを直接表示すると、HTTPリクエストはすぐにWAFに送信され。

疑わしい動作(「param」が指す悪意のあるペイロード)を。

認識するルールがあって。

応答としてHTTP 404 エラーを送信し、実際に攻撃をブロックして。

 https://auth.targetdomain/vulnerable_endpoint?param=malicious_RCE_payload

 

しかし、URLをエンコードすると。

Base64とその結果の文字列:

AHR0cHM6Ly9hdXRoLnRhcmdldGRvbWFpbi92dWxuZXJhYmxlX2VuZHBvaW50P3BhcmFtPW1hbGljaW91c19SQ0VfcGF5bG9hZA==

 

 

そして、それをパラメータ「cfru」に渡して。

https://targetdomain/?cfru= AHR0cHM6Ly9hdXRoLnRhcmdldGRvbWFpbi92dWxuZXJhYmxlX2VuZHBvaW50P3BhcmFtPW1hbGljaW91c19SQ0VfcGF5bG9hZA==

 

まとめ:

    リクエストはWAFを通過し、疑わしいとは認識されず。

 次に、リクエストはBlue Coatプロキシサーバに送られ。

 そこでcfruパラメータがデコードされ。

 GETリクエストが内部ホストに送信されて。

 その結果、脆弱性が発生して。

 

Best regards, (^^ゞ