web-dev-qa-db-ja.com

ebay検索ボックスのcurl / wgetがアクセス拒否エラーを表示するのはなぜですか?

誤ってwgetコマンドをebay検索ボックスにコピーして貼り付けたところ、次のエラーが発生しました。

ebay error

wget http://google.comまたはcurl http://google.com、またはその他のURL ...

URLを入力するだけの場合は入力を無害化し、スラッシュを削除するように見えますが、その前にwgetまたはcurlがある場合はそうではありません。彼らは何をしているのでしょうか?これにより、wgetまたはcurlコマンドがサニタイズをバイパスし、別の結果を生成しますか?

30
Pancakes

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]読みやすくするためにスラッシュのエスケープをスキップしました

35
Stefan Braun