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
json-sanitizer — json-sanitizer mit CVE-2020-13973 | Kitploit
Tools/GitHubGitHub/epicosy/json-sanitizer
Allgemeine DienstprogrammeVerschlüsselungs-/EntschlüsselungstoolsSchwachstellenanalyseCode-AnalyseWebsicherheit
GitHubepicosy/json-sanitizer

json-sanitizer

json-sanitizer mit CVE-2020-13973

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

json-sanitizer

Bei JSON-ähnlichem Inhalt wandelt der JSON-Sanitizer diesen in gültiges JSON um.

Erste Schritte - Kontakt

Dies kann an beiden Enden einer Daten-Pipeline angebracht werden, um Postels Prinzip zu erfüllen:

Sei konservativ in dem, was du tust, sei liberal in dem, was du von anderen akzeptierst.

Angewandt auf JSON-ähnliche Inhalte von anderen wird es wohlgeformtes JSON erzeugen, das jeden von Ihnen verwendeten Parser zufriedenstellen sollte.

Angewandt auf Ihre Ausgabe vor dem Senden werden kleine Kodierungsfehler korrigiert und es wird einfacher, Ihr JSON in HTML und XML einzubetten.

Motivation

Architektur

Viele Anwendungen verfügen über große Mengen an Code, die Ad-hoc-Methoden zur Erzeugung von JSON-Ausgaben verwenden.

Häufig durchlaufen diese Ausgaben alle eine kleine Menge an Framework-Code, bevor sie über das Netzwerk gesendet werden. Diese kleine Menge an Framework-Code kann diese Bibliothek verwenden, um sicherzustellen, dass die Ad-hoc-Ausgaben standardkonform und sicher für (übermächtige) Deserialisierer wie Javascripts eval-Operator sind.

Anwendungen haben auch oft Web-Service-APIs, die JSON aus einer Vielzahl von Quellen empfangen. Wenn dieses JSON mit Ad-hoc-Methoden erstellt wird, kann diese Bibliothek es in eine Form bringen, die leicht zu parsen ist.

Durch die Einbindung dieser Bibliothek in den Code, der Anfragen und Antworten sendet und empfängt, kann diese Bibliothek Softwarearchitekten dabei helfen, systemweite Sicherheits- und Wohlgeformtheitsgarantien zu gewährleisten.

Eingabe

Der Sanitizer nimmt JSON-ähnliche Inhalte und interpretiert sie so, wie JS eval es tun würde. Insbesondere behandelt er diese nicht standardkonformen Konstrukte.

Der Sanitizer korrigiert fehlende Satzzeichen, End-Anführungszeichen und falsch zugeordnete oder fehlende schließende Klammern. Wenn eine Eingabe nur Leerzeichen enthält, wird die gültige JSON-Zeichenkette null eingesetzt.

Ausgabe

Die Ausgabe ist wohlgeformtes JSON gemäß RFC 4627. Die Ausgabe erfüllt diese zusätzlichen Eigenschaften:

  • Die Ausgabe enthält nicht die Teilzeichenkette (case-insensitiv) "</script", sodass sie ohne weitere Kodierung in ein HTML-Script-Element eingebettet werden kann.
  • Die Ausgabe enthält nicht die Teilzeichenkette "]]>", sodass sie ohne weitere Kodierung in einen XML-CDATA-Abschnitt eingebettet werden kann.
  • Die Ausgabe ist ein gültiger Javascript-Ausdruck, kann also von Javascripts eval-Builtin (nachdem es in Klammern gesetzt wurde) oder von JSON.parse geparst werden. Insbesondere enthält die Ausgabe keine String-Literale mit eingebetteten JS-Zeilenumbrüchen (U+2028 Paragraph Separator oder U+2029 Line Separator).
  • Die Ausgabe enthält nur gültige Unicode-Skalarwerte (keine isolierten UTF-16-Surrogate), die in XML erlaubt und unescaped sind.

Sicherheit

Da die Ausgabe wohlgeformtes JSON ist, hat die Übergabe an eval keine Nebenwirkungen und keine freien Variablen, ist also weder ein Vektor für Code-Injection noch ein Vektor für das Exfiltrieren von Geheimnissen.

Diese Bibliothek stellt nur sicher, dass die Phase JSON-String → Javascript-Objekt keine Nebenwirkungen hat und keine freien Variablen auflöst. Sie kann nicht kontrollieren, wie anderer clientseitiger Code das resultierende Javascript-Objekt später interpretiert. Wenn clientseitiger Code also einen Teil der geparsten Daten, der von einem Angreifer kontrolliert wird, nimmt und ihn erneut durch einen mächtigen Interpreter wie eval oder innerHTML schleust, könnte dieser clientseitige Code unbeabsichtigte Nebenwirkungen erleiden.

root@kitploit:~
var myValue = eval(sanitizedJsonString);  // sicher
var myEmbeddedValue = eval(myValue.foo);  // möglicherweise unsicher

Darüber hinaus kann das Säubern von JSON eine Anwendung nicht vor Confused-Deputy-Angriffen schützen.

root@kitploit:~
var myValue = JSON.parse(sanitizedJsonString);
addToAdminstratorsGroup(myValue.propertyFromUntrustedSource);

Leistung

Die sanitize-Methode gibt die Eingabezeichenkette zurück, ohne einen neuen Puffer zuzuweisen, wenn die Eingabe bereits gültiges JSON ist, das die obigen Eigenschaften erfüllt. Wenn sie also auf Eingaben angewendet wird, die normalerweise wohlgeformt sind, hat sie einen minimalen Speicher-Overhead.

Die sanitize-Methode benötigt O(n) Zeit, wobei n die Länge der Eingabe in UTF-16-Code-Einheiten ist.

Tool herunterladen
KonstruktRichtlinie
'...'In einfache Anführungszeichen gesetzte Zeichenketten werden in JSON-Zeichenketten umgewandelt.
\xABHexadezimale Escape-Sequenzen werden in JSON-Unicode-Escape-Sequenzen umgewandelt.
\012Oktale Escape-Sequenzen werden in JSON-Unicode-Escape-Sequenzen umgewandelt.
0xABHexadezimale Integer-Literale werden in JSON-Dezimalzahlen umgewandelt.
012Oktale Integer-Literale werden in JSON-Dezimalzahlen umgewandelt.
+.5Dezimalzahlen werden in das strengere JSON-Format umgewandelt.
[0,,2]Auslassungen in Arrays werden mit null gefüllt.
[1,2,3,]Abschließende Kommas werden entfernt.
{foo:"bar"}Nicht in Anführungszeichen gesetzte Eigenschaftsnamen werden in Anführungszeichen gesetzt.
//commentsJS-ähnliche Zeilen- und Blockkommentare werden entfernt.
(...)Gruppierende Klammern werden entfernt.