誤ってwgetコマンドをebay検索ボックスにコピーして貼り付けたところ、次のエラーが発生しました。
wget http://google.com
またはcurl http://google.com
、またはその他のURL ...
URLを入力するだけの場合は入力を無害化し、スラッシュを削除するように見えますが、その前にwgetまたはcurlがある場合はそうではありません。彼らは何をしているのでしょうか?これにより、wgetまたはcurlコマンドがサニタイズをバイパスし、別の結果を生成しますか?
私assumeは、ebay.comがWebアプリケーションファイアウォールをインストールしたことを確認します。これにより、リクエストが攻撃の可能性として認識されます。したがって、リクエストはキャンセルされ、HTTP 403 - Access Denied
を受け取ります。 Apache、nginx、およびIISのmod_security WAFは同様に動作します。これが防止モードの場合、デフォルトでHTTP 403
で応答します[1]。
ほとんどのWAFには、ある種のルールセットがあります。彼らはあなたのリクエストが彼らのルールの1つに一致するかどうかをチェックします、おそらく正規表現で。さらに、これらのルールの1つが(wget|curl) (http|https)://.*
[2]のように見えると想定します。 URL内のダブルスラッシュの「サニタイズ」は、アプリケーションレベルで発生する可能性が高いです。 asdf//
のような文字列もasdf
に短縮されます。
[1] https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#secdefaultaction
[2]読みやすくするためにスラッシュのエスケープをスキップしました