Nochmal zurück zum Thema. Es gab bei der Code Injection ein kleines Problem
was verhindert hat das ich " oder ' injizieren konnte. Leider konnte ich das
Verhalten nicht mehr reproduzieren, ich vermute es liegt an PHP 4 oder
magic_quotes.
Jedefalls ist man ohne Quotes schon ziemlich aufgeschmissen wenn z.B. Pfade
(also Strings) zu Dateien injizieren möchte. Deswegen habe ich den kompletten
Code kodiert und in ein eval gesteckt:
PHP-Code:
$s = str_split("readfile('/full/path/to/passwords');");
$s = array_map('ord', $s);
$s = 'eval(chr('.implode(').chr(', $s).'));';
echo "http://example.com/counter.php?daten=".urlencode('<?php '.$s.' ?>');
Das ist keine große Kunst aber zwei Dinge möchte ich dazu sagen.
1. Gibt es sehr viel trickreichere Wege Code über 10 Ecken einzuschleusen, z.B. tricks mit Multibyte Charsets führen immer zu netten "Aha" effekten.
Ich will damit sagen das eine Lösung auf dem ersten Blick nicht umbedingt eine sein muss.
2. Ohne eval hätte der Angriff nicht funktioniert.