WAF Bypass
Regex-Bypasses
Es können verschiedene Techniken verwendet werden, um die Regex-Filter der Firewalls zu umgehen. Beispiele hierfür sind das Wechseln der Groß- und Kleinschreibung, das Hinzufügen von Zeilenumbrüchen und das Codieren von Payloads. Ressourcen für die verschiedenen Umgehungen finden Sie unter PayloadsAllTheThings und OWASP. Die folgenden Beispiele wurden aus diesem Artikel entnommen.
Zeichencodierung
Eine gängige Methode, um Web Application Firewalls (WAFs) zu umgehen, besteht darin, die Zeichencodierung zu ändern. Dies kann dazu führen, dass die WAF die Angriffsvektoren nicht erkennt und somit den Angriff nicht blockiert.
URL-Encoding
URL-Encoding ist eine Technik, bei der Sonderzeichen in einer URL durch eine spezielle Codierung ersetzt werden. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in einer anderen Form vorliegt.
Beispiel:
Ursprüngliche URL: http://example.com/page?param=value
URL-Encoding: http://example.com/page?param%3Dvalue
Hex-Encoding
Hex-Encoding ist eine Methode, bei der Zeichen in Hexadezimalwerte umgewandelt werden. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in einer anderen Form vorliegt.
Beispiel:
Ursprünglicher Text: admin
Hex-Encoding: 61646d696e
Unicode-Encoding
Unicode-Encoding ist eine Technik, bei der Zeichen in Unicode-Zeichen umgewandelt werden. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in einer anderen Form vorliegt.
Beispiel:
Ursprünglicher Text: admin
Unicode-Encoding: \u0061\u0064\u006d\u0069\u006e
HTML-Encoding
HTML-Encoding ist eine Methode, bei der Zeichen in HTML-Entitäten umgewandelt werden. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in einer anderen Form vorliegt.
Beispiel:
Ursprünglicher Text: <script>alert('XSS')</script>
HTML-Encoding: <script>alert('XSS')</script>
Base64-Encoding
Base64-Encoding ist eine Technik, bei der Daten in eine Zeichenkette umgewandelt werden, die nur aus alphanumerischen Zeichen besteht. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in einer anderen Form vorliegt.
Beispiel:
Ursprünglicher Text: admin
Base64-Encoding: YWRtaW4=
GZIP-Encoding
GZIP-Encoding ist eine Methode, bei der Daten komprimiert werden, um die Übertragungseffizienz zu verbessern. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in einer komprimierten Form vorliegt.
Beispiel:
Ursprünglicher Text: admin
GZIP-Encoding: H4sIAAAAAAAE/w==
Chunked-Encoding
Chunked-Encoding ist eine Technik, bei der Daten in kleinere Teile aufgeteilt werden, um die Übertragung zu erleichtern. Dies kann dazu führen, dass die WAF den Angriffsvektor nicht erkennt, da er in mehreren Teilen übertragen wird.
Beispiel:
Ursprünglicher Text: admin
Chunked-Encoding: 4\r\nadmin\r\n0\r\n\r
Obfuscation
Obfuscation ist eine Technik, bei der der Code so modifiziert wird, dass er schwer zu verstehen oder zu analysieren ist. Dies kann verwendet werden, um WAFs (Web Application Firewalls) zu umgehen, da sie den modifizierten Code möglicherweise nicht erkennen können.
Es gibt verschiedene Arten von Obfuscationstechniken, die verwendet werden können, um den Code zu verschleiern. Einige Beispiele sind:
String-Obfuscation: Hierbei werden Zeichenketten im Code verschlüsselt oder in andere Formate umgewandelt, um sie vor der Erkennung durch WAFs zu schützen.
Code-Obfuscation: Diese Technik beinhaltet die Modifikation des Codes, um ihn schwer lesbar zu machen. Dies kann durch das Hinzufügen von unnötigen Anweisungen, das Umbenennen von Variablen oder das Verwenden von verschleierten Funktionen erreicht werden.
Payload-Obfuscation: Bei dieser Technik wird die schädliche Payload so modifiziert, dass sie von WAFs nicht erkannt wird. Dies kann durch das Ändern der Reihenfolge der Zeichen, das Hinzufügen von Junk-Code oder das Verwenden von verschleierten Funktionen erreicht werden.
Es ist wichtig zu beachten, dass Obfuscation allein nicht ausreicht, um eine WAF zu umgehen. Es sollte als Teil einer umfassenderen Angriffsstrategie verwendet werden, die auch andere Techniken wie IP-Spoofing, HTTP-Header-Manipulation und Angriffe auf Schwachstellen umfasst.
Unicode-Kompatibilität
Je nach Implementierung der Unicode-Normalisierung (weitere Informationen hier) können Zeichen, die Unicode-Kompatibilität aufweisen, den WAF umgehen und als beabsichtigte Nutzlast ausgeführt werden. Kompatible Zeichen finden Sie hier
Beispiel
Überschreiten von Größenbeschränkungen
Es ist üblich bei cloudbasierten WAFs, dass wenn die Nutzlast größer als X ist, die Anfrage nicht vom WAF überprüft wird. Du kannst das einfach nutzen, um sie zu umgehen.
IP-Rotation
Last updated