Hello there, ('ω')ノ
ハンティングバグのプロキシ設定が正しくない状態でWAFをバイパスするを。
脆弱性:
URL検証バイパス
記事:
ターゲットシステムに次のアドレスがあるとして。
偶然にも、サイトでの認証を担当するサブドメインでいくつかの。
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, (^^ゞ