〰️WAF / Filter bypass
Sites
Methodologie
<script> //bloqué
<script/x //bloqué (peut-être une regex "<script.*")
:script/x //OK (bloqué si le payload commence par "<")
<tst> //OK (bloqué si le payload commence par "<" et blacklist "script")
<%ascript> //OK (confirme que la regex fonctionne comme ceci "<[blacklist].*"
Maintenant on peut vérifier les caractères possibles dans le tag comme ceci:
%20 : espace
%3d : '
%27 : =
%28 : (
%29 : )
%09 : tab
%0a : newline
<x%20x%3dx%27x%28x%29x%09x%0a> //bloqué (l'un des caractères est bloqué)
fonctionnement par elimination: on va supprimer les caractères un par un
<x%20x%09x> //OK
<%09script> //OK (le backend ne prend pas en compte le tab donnant le résultat espéré)Template de test manuel
Mindmap de test manuel

Bypass de regex / blacklist
Cloudflare
Faiblesses
Akamai
Faiblesses
Sucuri
Fortiweb
Imperva
Cloudflare rate limit
PHP htmlspecialchars() bypass
Variables globales javascript
Encoding / Double encoding
Unicode
Commentaires
Caractères spéciaux
Junk characters
Saut de ligne
Variables non initialisées
Tabs and Line Feeds
OS injection
Mutations balise <a>

XML/HTML confusion
Changer le content encoding
Changer le header pour les upload de fichiers
Multipart parser manipulation
Méthode 1: URL encoding > Multipart format
Méthode 2: Dédoubelement de paramètres
Méthode 3: Dédoublement de Content-Disposition
Méthode 4: Casser la séquence CRLF
Méthode 5: Supprimer ou remplacer les quotes des paramètres
Méthode 6: Absence de ending boundary string
Méthode 7: filename*utf-8=''
Outils
Waf-bypass
Tips SQLMap
Mis à jour