web-dev-qa-db-fra.com

Pourquoi curl / wget dans la boîte de recherche ebay me donne-t-il une erreur d'accès refusé?

Je viens de copier par accident une commande wget dans la zone de recherche ebay et j'ai obtenu l'erreur suivante:

ebay error

Cela arrive avec wget http://google.com ou curl http://google.com, ou toute autre URL ...

Il semble purifier l'entrée et supprimer les barres obliques si vous entrez simplement une URL, mais pas si vous la faites précéder de wget ou curl. Que pourraient-ils faire pour qu'une commande wget ou curl contourne leur désinfection et produise un résultat différent?

30
Pancakes

Je suppose que ebay.com a installé un pare-feu d'application Web, qui reconnaît votre demande comme une attaque possible. Par conséquent, votre demande est annulée et vous recevez un HTTP 403 - Access Denied. Le WAF mod_security pour Apache, nginx et IIS se comporte de la même manière: s'il est en mode de prévention, il répondra également par HTTP 403 par défaut [1].

La plupart des WAF ont une sorte d'ensemble de règles. Ils vérifient si votre demande correspond à l'une de leurs règles, peut-être avec des expressions régulières. Je suppose en outre que l'une de ces règles ressemble à (wget|curl) (http|https)://.* [2]. La "désinfection" des doubles barres obliques dans votre URL se produit très probablement au niveau de l'application. Des chaînes comme asdf// sera également raccourci en asdf.

[1] https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#secdefaultaction

[2] Saut échappé des barres obliques pour des raisons de lisibilité

35
Stefan Braun