Je viens de copier par accident une commande wget dans la zone de recherche ebay et j'ai obtenu l'erreur suivante:
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?
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é