
Dieses Projekt zeigt eine Simulation einer Web Application Firewall (WAF) mit Flask und einen Schwachstellenprüfer für CVE-2017-5638. Die WAF-Middleware blockiert HTTP-Anfragen, die bestimmte Muster enthalten, und der Schwachstellenprüfer testet die Apache-Struts-2-Schwachstelle (CVE-2017-5638) und nutzt sie aus.
Dieses Projekt demonstriert eine Simulation einer Web Application Firewall (WAF) mit Flask und einem Schwachstellenprüfer für CVE-2017-5638. Die WAF-Middleware blockiert HTTP-Anfragen, die bestimmte Muster enthalten, und der Schwachstellenprüfer testet auf die Apache Struts 2 Schwachstelle (CVE-2017-5638) und nutzt diese aus.
server.py: Dieser Flask-basierte Webserver enthält eine WAF-Middleware, die HTTP-Anfragen mit potenziell bösartigen Mustern blockiert.
vulnerable.py: Dieses Skript prüft auf die Schwachstelle CVE-2017-5638 und kann beliebige Befehle ausführen, falls das Ziel anfällig ist.
Das Skript server.py richtet einen Flask-Webserver mit einer WAF-Middleware ein, die eingehende Anfragen auf bestimmte bösartige Muster untersucht. Wird ein blockiertes Muster erkannt, wird die Anfrage mit einer 403 Forbidden-Antwort abgewiesen.
Installieren Sie Flask:
pip install flask
Starten Sie den Server:
python server.py
Greifen Sie auf den Server unter http://127.0.0.1:5000/ zu.
Das Skript vulnerable.py prüft, ob eine angegebene URL anfällig für CVE-2017-5638 ist, und kann Befehle auf dem anfälligen Server ausführen.
Installieren Sie die erforderlichen Bibliotheken:
pip install requests
Überprüfen Sie, ob eine URL anfällig ist:
python vulnerable.py --url http://example.com --check
Führen Sie einen Befehl auf einer anfälligen URL aus:
python vulnerable.py --url http://example.com -c "whoami"
Das Skript server.py dient als grundlegende Demonstration einer WAF mit Flask. In einem realen Szenario sollten fortgeschrittenere Techniken und Muster eingesetzt werden.