Algunos de ustedes ya han escuchado del nullbyte poisoning, que se usa para bypassear que si, que no pero cuantos de ustedes realmente saben que hace el nullbyte? mmm pues hoy les voy a explicar por que se bypassea con este caracter, lo primero que deben saber es que las magic_quotes deben estar en OFF, ahora si, empezemos...
primero el código PHP vulnerable:
$include = $_GET['include'];
require_once("/var/www/$include.php");
Como ven, masomenos se puede entender el código, lo que se hace un GET:
http://www.vuln.com/index.php?include=
pero en la siguiente linea dice que el archivo que traigan va a ser un .php
es decir, lo que sea que traigan será interpretado por el servidor asi:
http://vuln.com/index.php?include=archivo.php
sin embargo nosotros podriamos explotar un LFI haciendo algo asi:
http://www.vuln.com/index.php?include=../etc/passwd<>
ahora el nullbyte en una situación como la antes dada también podriamos usarla para descargar cosas de la siguiente manera...
http://www.notfreedownloads.com/index.php?include=ventas.php
si el tipo de arriba tuviese los archivos en su host entonces podriamos hacer algo como:
http://www.notfreedownloads.com/index.php?include=../ventas/programas/500dolares<>exe
entonces los ejecutables (.exe) que esten en 500dolares podrian ser nuestros en tan solo unos segundos, los directorios los podemos descubrir de manera manual o usando t00ls como acunetix que te facilitan el trabajo, así también como les enseñe se puede usar el nullbyte para llamar archivos con sierta extensión... no solo archivos de configuración... hay retos en internet de LFI que necesitan usar el nullbyte poisoning entre ellos un reto de codebit y otro en seguridadinformatica en el de seguridad informatica ponen en práctica el último ejemplo que di...
Espero con esto les quede un poco mas claro de como es el nullbyte poisoning, también es un ataque que se puede hacer en ASP pero no lo voy a explicar por que haré un tuto de Sql Injection en Asp.Net que necesitará nullbyte poisoning o quizas en otro tuto de nullbyte pero los codigos son básicamente iguales...
lamentablemente blogger no deja poner los nullbyte pero sustituyan <> por el nullbyte que es signo de porcentaje y dos ceros % 00 solo que todo junto
casi lo olvidaba, como protegerse pues no es tan dificil...
un str replace estará bien pero pueden hacerlo con un str_replace cambiando el chr(0) que es el nullbyte...
Saludos
Dr.White
Backup Oficial de SeguridadBlanca.Org
miércoles, 9 de diciembre de 2009
Suscribirse a:
Enviar comentarios (Atom)
Muchas gracias por tus post compañero, da gusto ver como gente como tu comparte sus conocimientos con el resto. Me preocupo bastante por la seguridad de mis páginas, y es realmente complicado encontrar un blog que se actualice a diario como el tuyo hablando sobre este tema. Todavía me pierdo un poco con algunos términos, pero seguro que poco a poco y leyendote voy aprendiendo mucho más. De nuevo, gracias.
ResponderEliminarTe comento que estoy en las pruebas de SeguridadInformatica.org y quedé trabado en el nivel 4 que trata de esto precísamente.
ResponderEliminarLo mucho que he logrado entre intentando editar cabeceras y pone algo así como:
../../../../etc/passwd con una longitud bastante larga y demás
he insertado entre comillas y todo lo demás y lo que me ha mostrado es una página cuyo contenido es:
m00~
también he puesto /usr/bin/cat /etc/passwd y nada...
He leido entre otros textos este: http://www.milw0rm.com/papers/229
Si pudieras orientarme un poco más... resaltando lo que estoy haciendo mal o algún texto donde trataras más acerca de abrir archivos especificos como el ejemplo de los exe que mencionas en este post.
Gracias de antemano por las respuestas que puedas darme.
Se me olvidaba que el el porciento_cero_cero no lo muestra.
ResponderEliminarAl final de esas líneas que te comento que agrego en la caja de texto, pongo el porciento_cero_cero.
Y nuevamente, gracias por las respuestas que puedas ofrecerme. Creo que no es necesario, o está demás, decir que no quiero la respuesta. Ahora mismo ando montando mis servicios para ir practicando de forma local y en casa