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
Tools/GitHubGitHub/momo1239/cve-2024-35333
Statische AnalyseSchwachstellenanalyseExploitationFuzzingLernen & BildungBinary-Exploitation
GitHubmomo1239/cve-2024-35333

CVE-2024-35333

Reproduktion und Root-Cause-Analyse von CVE-2024-35333, einem Stack-Pufferüberlauf in html2xhtml 1.3, mit ASan-Crash-Ausgabe und codeebenen Mitigationshinweisen.

Repository anzeigen
3vor 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

CVE-2024-35333

In der Zeichensatz-Verarbeitungsfunktion von html2xhtml Version 1.3 existiert eine Schwachstelle in Form eines Stapelpufferüberlaufs. Ein Angreifer kann diese Schwachstelle ausnutzen, indem er eine speziell präparierte Eingabe bereitstellt, die zum Überlauf der auf dem Stapel befindlichen Variable 'buf' führt. Eine erfolgreiche Ausnutzung dieser Schwachstelle könnte es einem Angreifer ermöglichen, beliebigen Code auszuführen oder die Anwendung zum Absturz zu bringen, was zu einem Denial-of-Service führt.

Absturzphase

Um den Absturz zu reproduzieren, gehen wir auf die Projektwebsite und laden die neueste Version 1.3 herunter.

Sobald wir die Tar-Datei haben, können wir tar xvf XYZ.tar ausführen.

Ausführen:

root@kitploit:~
./configure
make
./html2xhtml poc.html

Sie sollten einen Segmentierungsfehler erhalten. Analysieren wir dies mit Address Sanitizer.

Ausführen:

root@kitploit:~
make clean
make CFLAGS=-fsanitize=address
./html2xhtml poc.html

Sie erhalten die folgende Ausgabe:

root@kitploit:~
=================================================================
==3468537==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffffffde70 at pc 0x7ffff7493fc4 bp 0x7fffffffdc00 sp 0x7fffffffd3a8
READ of size 86 at 0x7fffffffde70 thread T0
    #0 0x7ffff7493fc3 in __interceptor_memmem ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:686
    #1 0x5555555f5f35 in read_charset_decl /home/kenny/Downloads/html2xhtml-1.3/src/charset.c:680
    #2 0x5555555f7d89 in guess_charset /home/kenny/Downloads/html2xhtml-1.3/src/charset.c:508
    #3 0x5555555f7d89 in charset_auto_detect /home/kenny/Downloads/html2xhtml-1.3/src/charset.c:343
    #4 0x555555568d49 in main /home/kenny/Downloads/html2xhtml-1.3/src/html2xhtml.c:100
    #5 0x7ffff7029d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #6 0x7ffff7029e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #7 0x55555556b914 in _start (/home/kenny/Downloads/html2xhtml-1.3/src/html2xhtml+0x17914)

Address 0x7fffffffde70 is located in stack of thread T0 at offset 544 in frame
    #0 0x5555555e86bf in read_charset_decl /home/kenny/Downloads/html2xhtml-1.3/src/charset.c:536

  This frame has 1 object(s):
    [32, 544) 'buf' (line 537) <== Memory access at offset 544 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:686 in __interceptor_memmem
Shadow bytes around the buggy address:
  0x10007fff7b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7b80: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00
  0x10007fff7b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x10007fff7bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00[f3]f3
  0x10007fff7bd0: f3 f3 f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
  0x10007fff7be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
  0x10007fff7bf0: f1 f1 00 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
  0x10007fff7c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==3468537==ABORTING

Ursachenanalyse

Werfen wir einen Blick auf den Quellcode und untersuchen die verwundbare Funktion: read_charset_decl(). Die Funktion umfasst über 100 Codezeilen. Wir vereinfachen sie und betrachten diese spezielle Schleife.

root@kitploit:~
  for (i = ini, len = 0; i < avail && len < SCAN_LEN; i += step, len++) {
    buf[len] = tolower(buffer[i]);
  }

Diese Schleife kopiert Daten aus dem Puffer-Array nach buf und wandelt dabei Zeichen in Kleinbuchstaben um. Das Problem tritt auf, wenn avail größer als SCAN_LEN ist und die Schleife nicht prüft, ob die Obergrenze von buf überschritten wird.

Zur Abschwächung sollte eine Grenzprüfung eingefügt werden, um sicherzustellen, dass len SCAN_LEN nicht überschreitet.

Tool herunterladen