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
linux_mint_poc — PoC und Patch für eine Command-Injection-Schwachstelle im Yelp-URI-Handler von Linux Mint 18.3-19.1. Zeigt Grundursache, Ausnutzung und Gegenmaßnahmen. | Kitploit
Tools/GitHubGitHub/b1ack0wl/linux_mint_poc
SchwachstellenanalyseExploitationLernen & Bildung
GitHubb1ack0wl/linux_mint_poc

linux_mint_poc

PoC und Patch für eine Command-Injection-Schwachstelle im Yelp-URI-Handler von Linux Mint 18.3-19.1. Zeigt Grundursache, Ausnutzung und Gegenmaßnahmen.

Repository anzeigen
5310vor 7 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Linux Mint 18.3-19.1 'yelp' Command-Injection-Fehler

Grundursache

Die URI-Handler help://, ghelp:// und man:// sind in der Datei /usr/share/applications/yelp.desktop definiert, die /usr/local/bin/yelp über Exec=yelp %u ausführt, sobald einer dieser URI-Handler aufgerufen wird.

Die Datei /usr/local/bin/yelp ist ein einfaches Python-Skript, das die eingehende URI-Handler-Anfrage parst. Dieses Skript sucht zuerst nach den Teilstrings "gnome-help" und "ubuntu-help", und wenn es keinen dieser Teilstrings findet, führt es /usr/local/bin/yelp aus, ohne das Argument in Anführungszeichen zu setzen.

Inhalt von /usr/local/bin/yelp:

root@kitploit:~
#!/usr/bin/python

import os
import sys

if (len(sys.argv) > 1):
    args = ' '.join(sys.argv[1:])
    if ('gnome-help' in args) and not os.path.exists('/usr/share/help/C/gnome-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    elif ('ubuntu-help' in args) and not os.path.exists('/usr/share/help/C/ubuntu-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    else:
        os.system ("/usr/bin/yelp %s" % args)  # uh oh
else:
    os.system ('/usr/bin/yelp')

Von PoC zur Shell

Die Ausnutzung erforderte ein wenig Kreativität, da Google Chrome das Leerzeichen \x20, geschweifte Klammern {}, das Pluszeichen +, das Backtick-Zeichen ` und einige andere Zeichen URI-kodiert. Da ${IFS} nicht funktionierte, wurde entdeckt, dass $IFS$() genauso gut funktioniert, da die $()-Anweisung verhindert, dass sich die Umgebungsvariable $IFS mit anderen ASCII-Zeichen verbindet und versehentlich zu $IFSaddedword oder Ähnlichem wird.

Gegenmaßnahmen

Übersicht

Die Datei yelp.patch ändert die verwundbare Anweisung von os.system ("/usr/bin/yelp %s" % args) zu os.system ("/usr/bin/yelp %s" % quote(args)), wodurch die Methode quote() aus der Bibliothek shlex (https://docs.python.org/3/library/shlex.html#shlex.quote) genutzt wird.

Anleitung zum Patchen

Entweder yelp patchen oder entfernen.

Yelp patchen

  • Patch installieren: sudo apt install patch
  • Yelp-Skript patchen: sudo patch /usr/local/bin/yelp yelp.patch

Yelp und die zugehörigen URI-Handler entfernen

  • URI-Handler entfernen: sudo rm /usr/share/applications/yelp.desktop
  • Yelp-Python-Skript entfernen: sudo rm /usr/local/bin/yelp

[b1ack0wl]

Tool herunterladen