
CVE 2021-21315 PoC
Dies ist ein Proof of Concept für CVE-2021-21315, das die Systeminformation-Bibliothek für Node.JS (npm-Paket "systeminformation") betrifft. npmjs.com/systeminformation
"Stellen Sie sicher, dass Sie Dienstparameter, die an si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() übergeben werden, überprüfen oder bereinigen ... erlauben Sie nur Zeichenfolgen, lehnen Sie Arrays ab. Die Zeichenfolgenbereinigung funktioniert wie erwartet."
Da es sich meiner Meinung nach um eine nicht gut erklärte Sicherheitslücke handelt, habe ich beschlossen, eine kleine App zu programmieren, die auf einer anfälligen Version von systeminformation basiert. Das PoC enthält:
Schritte zur Reproduktion:


Dies wird fehlschlagen, wegen der Zeichenfolgenbereinigung:

Wie in den CVE-Details angegeben, funktioniert die Bereinigung wie erwartet, lehne Arrays ab [...]
Diesmal, wenn Sie sich den Wert von "name" ansehen, wurde er nicht bereinigt - Erfolg! Mal sehen, ob der Befehl ausgeführt wurde
Erfolg! Unser Befehl wurde ausgeführt. Natürlich kümmert sich niemand um "pwn.txt", aber ein potenzieller Angreifer kann:
"Befehlseinschleusung" klingt harmlos, kann aber enorme Auswirkungen haben, wenn bestimmte Bedingungen erfüllt sind
Das Problem wurde in Version 5.3.1 von "systeminformation" behoben. Dank an https://www.huntr.dev/users/EffectRenan (Er hat die Sicherheitslücke gefunden, jedoch zeigte sein "PoC" meiner Meinung nach keine realen Auswirkungen)
Zögern Sie auch nicht, dieses PoC in einigen CTFs zu verwenden, aber es wäre cool, wenn Sie den Autor der Entdeckung - EffectRean und den PoC-Ersteller - mich, würdigen würden, Prost!
Dieses Projekt darf nur für Bildungszwecke verwendet werden. Die Verwendung dieser Software gegen Zielsysteme ohne vorherige Genehmigung ist illegal, und für Schäden, die durch Missbrauch dieser Software entstehen, übernimmt der Autor keine Haftung.