Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
fastjson-jsontype-rce-lab — Docker-Labs + defensiver Scanner für fastjson Remote-Class-Load-RCE. fastjson 1.2.66-1.2.83: @JSONType-Ressourcenprobe (CVE-2026-16723). fastjson2 2.0.57: Der @type des Angreifers erreicht loadClass mit deaktiviertem autoType über polymorphe Typen (@JSONType(seeAlso) / Jackson @JsonSubTypes). Reine Marker-Payloads; safeMode- und JDK17-Kontrollen. | Kitploit
Tools/GitHubGitHub/dinosn/fastjson-jsontype-rce-lab
Statische AnalyseDynamische Analyse (Sandboxing)SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungLabs & Praxis
GitHub
dinosn/fastjson-jsontype-rce-lab

fastjson-jsontype-rce-lab

Repository anzeigen
2039212vor 2 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 →

Über

Docker-Labs + defensiver Scanner für fastjson Remote-Class-Load-RCE. fastjson 1.2.66-1.2.83: @JSONType-Ressourcenprobe (CVE-2026-16723). fastjson2 2.0.57: Der @type des Angreifers erreicht loadClass mit deaktiviertem autoType über polymorphe Typen (@JSONType(seeAlso) / Jackson @JsonSubTypes). Reine Marker-Payloads; safeMode- und JDK17-Kontrollen.

Teilen

Fastjson @JSONType Remote-JAR/FD-Ketten-Labor und Erkennung

Dieses Repository enthält nun zwei getrennte Fastjson-Forschungslinien:

  • modern-fd/ ist die empfohlene, nur-Marker-Rekonstruktion der Fastjson-1.2.83-Einzelkörper-Remote-JAR/Dateideskriptor-Kette auf Spring Boot 3, normal eingebettetem Tomcat und JDK 17. Sie verwendet die wörtliche Fest-DTO-Senke JSON.parseObject(body, BoundEnvelope.class) bei deaktiviertem AutoType.
  • Das ursprüngliche Docker-Compose-Labor auf oberster Ebene bewahrt die ältere JDK-8-Direkt-Remote-Klassen-Route. Es ist befehlsfähig und sollte als veralteter, isolierter Nachweis betrachtet werden, nicht als Methode für moderne JDKs.
  • scanner/ enthält passive Anfrage-/Log-Erkennung, statische Artefakt-Inventarisierung und eine nicht ausführende Erreichbarkeitssonde.

Der Bug: ParserConfig.checkAutoType prüft jeden @type-Wert auf die @JSONType-Annotation, indem getResourceAsStream(typeName.replace('.','/') + ".class") ausgeführt wird. Auf modernen Linux/JDK-Kombinationen kann eine Remote-jar:http-Sonde das JAR hinter einem offenen Deskriptor im Cache belassen; spätere jar:file:/proc/self/fd/N-Sonden im selben Körper können es unter gültigen Klassennamen wieder öffnen und eine annotierte Klasse initialisieren. Die exakte 1.2.83-Komposition funktioniert bei deaktiviertem AutoType und über ein festes DTO, das List<Object> enthält. Bindung allein ist daher keine Abschwächung. Vollständiger Durchlauf: docs/MECHANISM.md.

Ergebnisse der Sicherheitsüberprüfung

Die begleitende projektsweite Überprüfung umfasste 2.041 aufrufbare/statische-Initialisierer-Zeilen in allen 193 Fastjson-1.2.83-Produktions-Java-Dateien. Die folgende Tabelle priorisiert die Ergebnisse mit der höchsten Auswirkung; sie ist keine Behauptung, dass jede Fastjson-Bereitstellung betroffen ist. Dieses Repository reproduziert direkt F105. Die übrigen Einträge fassen separat versiegelte Quellcode-Überprüfungen und begrenzte Laborbeweise zusammen.

PrioritätBefundBewiesenes ErgebnisWichtige Grenze
1F105 — Remote-@JSONType-Bytecode-AusführungAngreiferbereitgestellte Klasseninitialisierung über kompatible Spring-Boot-Loader, einschließlich der JDK-8-Direktroute und der Linux/JDK-17-Route mit beibehaltenem JAR über /proc/self/fd/N-FortsetzungErfordert einen parser-erreichbaren @type-Träger, kompatiblen Boot/TCCL-Loader, ausgehenden Verkehr, SafeMode/IgnoreAutoType aus und ein exaktes Angreifer-JAR. Die moderne Fest-DTO-Route benötigt zusätzlich eine generische Wertspur (das Labor verwendet List<Object>), Linux-procfs, einen beibehaltenen Deskriptor und exakte Namensausrichtung; nicht universell auf jeder JDK, jedem Loader oder Betriebssystem
2F1/F45 — TemplatesImpl-BefehlsausführungMarker-Befehlsausführung über die Fest-DTO-API, einschließlich einer ignorierten KörpereigenschaftErfordert geschwächte Serverrichtlinie: Klassenaufnahme, AutoType und Befüllung privater Felder oder gleichwertige Pfade; unveränderte Standardeinstellungen blockieren dies
3F70/C016 — unbegrenzte Pufferung und GZIP-ExpansionTypisierte Byte-/InputStream- und annotierte DTO-Pfade expandieren oder puffern ohne Ausgabegrenze; eingeschränkter Java-Heap-OOME wurde reproduziertEndpunkt/Schema und Erreichbarkeit von Angreifer-Bytes sind erforderlich; ein produktionsweiter Ausfall wurde nicht festgestellt
4F18/C089 — Stack-Erschöpfung des Parser-ThreadsTief verschachtelte gewöhnliche Objektwerte können unter Standard-Parsing einen StackOverflowError erzeugenAuswirkung auf die Verfügbarkeit des Anfrage-Threads; kein unveränderlicher JVM- oder dienstweiter Absturz
5F120/C162 — HTTP-SSRF/lokale Ressourcenladung mit festem SchemaKörpergesteuerte JEditorPane/JTextPane.page führt HTTP-Anfragen aus und kann begrenzte file:-Inhalte in den Dokumentstatus ladenErfordert, dass die Anwendung den Swing-Typ deklariert; keine automatische Antwort-Exfiltration oder RCE wurde bewiesen
6F118/C160 — Autorisierungs-/Datenintegritätsfehler durch Hash-KollisionEine ausgeprägte Unicode-FNV-1a-64-Kollision kann an eine privilegierte Enum-Konstante binden oder eine JSONPath-Mutation auf den falschen Bean-Setter lenkenErfordert eine nutzbare Kollision und nachgelagertes Vertrauen oder eine exponierte JSONPath-Mutationsoperation; keine Klassenaufnahme oder RCE
7F121/C163 — feste JdbcRowSet-JNDI-ErreichbarkeitExakte Setter-Reihenfolge verursachte eine körperausgewählte ausgehende JNDI/LDAP-VerbindungBeweis endet bei einer Verbindung: keine Naming-Antwort, Objektfabrik, Bytecode-Ladung oder RCE
8F2/F45 — standardmäßige DNS-AuflösungAngreiferkontrollierte Hostname-Auflösung funktioniert unter Standardkonfiguration und über eine ignorierte Fest-DTO-EigenschaftNur DNS/OOB-Interaktion, keine generische HTTP-SSRF oder RCE

Siehe findings/FINDINGS.md für Validierungskennzeichnungen, Voraussetzungen, Befunde niedrigerer Stufe, Abhilfeprioritäten und explizite negative Grenzen.

⚠️ Nur autorisierte Nutzung

Dieses Repository dient der Ausbildung, defensiven Forschung und autorisierten Prüfung von Systemen, die Ihnen gehören oder für die Sie ausdrücklich die Erlaubnis zur Prüfung haben. Host-Publikation, soweit für das interne Netzwerk des modernen Labors unterstützt, wird nur auf 127.0.0.1 angefragt; seine Skripte treiben den Test vollständig innerhalb dieses isolierten Netzwerks. Das moderne Labor hat kein Prozessausführungs- Primitiv und setzt nur einen festen In-JVM-Marker. Das ältere JDK-8-Labor führt id aus und schreibt seine Ausgabe nach /tmp/PWNED; halten Sie es isoliert. Richten Sie den Legacy-Exploit oder die aktive Sonde nicht gegen unbefugte Systeme.

Scannen Sie Ihre eigene Umgebung

Das scanner/-Verzeichnis enthält vier abhängigkeitsfreie Python-3-Werkzeuge (keine pip- Installationen).

  • fjdetect.py — untersucht dekodierte JSON-Anfragekörper oder strukturierte JSON-Logs passiv auf Remote-JAR-Seeds und /proc/self/fd- oder /dev/fd-Sequenzen.
  • fjscan_static.py — inventarisiert Jars/Wars/Ears auf die verwundbare Kombination (inhaltsgestützt, metadatenverifiziert 1.2.83 × tatsächlicher Spring-Boot-Loader-Klassen- inhalt). Sondenenthaltende 1.2.48–1.2.82-Veröffentlichungen und reine Metadaten-/Dateinamen- kandidaten werden separat zur Überprüfung gemeldet. CI-Gate-freundlich (Exit 2 bei EXPOSED).
  • fjscan_probe.py — aktive, sichere Erreichbarkeitsprüfung: feuert den @type auf einen Canary, den Sie kontrollieren (eingebauter Listener oder Burp Collaborator / interactsh) und korreliert den Ressourcenabruf-Callback. Sein eingebauter Listener gibt ein leeres 404 zurück; konfigurieren Sie externe Listener äquivalent. Ein Callback beweist keine Klassenladung oder RCE.
  • fjpayload.py — erzeugt Remote-Ressourcen-Abrufkörper für manuelle Tests; verwenden Sie nur einen leeren/404-Listener, wenn keine Ausführung beabsichtigt ist.
# 1) passive Anfrage-/Log-Inspektion
python3 scanner/fjdetect.py --ndjson gateway.jsonl

# 2) Inventarisierung von Build-Artefakten / entpackten Images (parallel)
python3 scanner/fjscan_static.py /path/to/artifacts --threads 16
Tool herunterladen