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
d_link_880_bug — CVE-2017-14948 for D-Link 880 Firmware | Kitploit
Tools/GitHubGitHub/badnack/d_link_880_bug
Embedded Systems SecurityIoT SecurityVulnerability AnalysisExploitationWeb Application ExploitationBinary AnalysisFirmware Analysis
GitHubbadnack/d_link_880_bug

d_link_880_bug

CVE-2017-14948 for D-Link 880 Firmware

Repository anzeigen
32vor 6 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

Schwachstellen in D-Link-Routern (CVE-2017-14948)

In diesem kleinen Artikel werden wir einige Fehler betrachten, die ich in D-Link-Produkten gefunden habe. D-Link bietet eine breite Produktpalette an, darunter viele verschiedene Router-Modelle mit unterschiedlichen Firmware-Versionen. In diesem Dokument werde ich die folgenden Firmware-Versionen behandeln: DIR-880L, DIR-868L, DIR-890L, DIR-885L und DIR-895L. Ohne weitere Umschweife, lasst uns beginnen.

Firmware-Analyse

Da ich keinen der D-Link-Router besaß und sie freien Zugriff auf ihre Firmware bieten, entschied ich mich, Fehler nur durch statische Analyse zu finden. Beachten Sie, dass ich mich in diesem Abschnitt auf die Firmware DIR-880L beziehe; die anderen Firmwares haben ähnliche Strukturen.

DIR-880L

Nach dem Herunterladen und Entpacken der DIR-880L-Firmware stellte ich fest, dass die Firmware ein vollständiges squashFS-Dateisystem enthält, das etwa 2160 Dateien umfasst. Da ich nicht jede einzelne davon unabhängig betrachten wollte, begann ich nach derjenigen zu suchen, die Benutzereingaben verarbeitet.

Nach der Analyse der Konfigurationsdateien und der Suche nach bekannten HTTP-Headern beschränkte ich meinen Fokus schließlich auf drei Binärdateien und dann auf eine: fileaccess.cgi.

Hier ist die Disassemblierung der verwundbaren Funktion:

root@kitploit:~
signed int __fastcall content_type(char *a1)
{
  char *dest; // [sp+4h] [bp-10h]@1
  const char *haystack; // [sp+Ch] [bp-8h]@1
  char *haystacka; // [sp+Ch] [bp-8h]@3

  dest = a1;
  haystack = getenv("CONTENT_TYPE");
  if ( !haystack )
    return -22;
  haystacka = strstr(haystack, "boundary=");
  if ( !haystacka )
    return -22;
  strcpy(dest, haystacka + 9);
  return 0;
}

Im obigen Code wird der Inhalt der Variablen 'CONTENT_TYPE' (auf den die Variable haystack zeigt) durch einen Benutzer kontrolliert (über den HTTP-Request-Header). Dessen Inhalt wird nach dem Schlüsselwort 'boundary' in einen Puffer dest kopiert, ohne die Länge von haystacka zu überprüfen. Wenn man sich die aufrufende Funktion (Adresse 0x1CE6C) ansieht, kann man ableiten, dass die Größe von dest 256 Bytes beträgt. Da ein Angreifer den Inhalt von CONTENT_TYPE kontrollieren kann, könnte er die Zeichenfolge 'boundary=' gefolgt von mindestens 257 Zeichen senden, um einen Pufferüberlauf auszulösen.

Zwei weitere ähnliche Fehler wurden in derselben Firmware-Probe gefunden, die das HTTP-Cookie betreffen. Einer davon ist unten dargestellt:

root@kitploit:~
v10 = getenv("HTTP_COOKIE");
  if ( v10 )
  {
    strcpy((char *)&v5, &v10[v11]);
    v17 = strlen((const char *)&v5);
  }

Hier zeigt die Variable v10 auf das Benutzer-Cookie, das maximal 4k Bytes groß sein kann (gemäß RFC2109). Die Variable v5 ist jedoch 1024 Bytes groß (wie wir aus dem Stack-Frame der Funktion ableiten können). Dies kann einen Pufferüberlauf auslösen.

Diese Fehler wurden von D-Link gemeldet und bestätigt.

DIR-868L, DIR-890L, DIR-885L und DIR-895L

Diese Firmware-Beispiele weisen eine ähnliche Struktur wie die DIR-880L auf und haben die gleichen Fehler in Bezug auf dieselben HTTP-Felder.

Tool herunterladen