domingo 24 de enero de 2010

[Pentesting] Full Path Disclosure By Zero Bits



.



0x01. Introducción

Bueno, me les presento, algunos ya me deben conocer, pero igual a los que no. Estoy en la RED bajo el seudónimo de Zero Bits, pero mi nombre real es DAVID, tengo 15 años, recién cumplidos el 21 de este MES XD (Octubre), soy Venezolano y ahorita ando sin team jejeje.



En este mini-tutorial, MEJORADO de la versión anterior, les hablare un poco sobre una vulnerabilidad muy vista, pero no muy peligrosa, llamada: Full Path Disclosure.



Continuemos…




0x02. ¿Qué es Full Path Disclosure o FPD? – ¿Por que se produce? – ¿Como saber si es vulnerable?




Como dije arriba, esta vulnerabilidad muy vista, pero no muy peligrosa, sirve más que todo para ingeniar otros ataques como LFI. ya que por eso mismo (no es muy peligrosa), muchos administradores no le hacen caso y no las tapan.



Esta vulnerabilidad, se produce más que todo por la mala programación de variables, agregándole cualquier cosa innecesaria y por eso no tiene ningún tipo validación de protección.



Para saber si un servidor es vulnerable, tendríamos que agregar en cualquier link con una estructura como esta; http://localhost/fpd.php?var=test cualquier arreglo que se nos ocurra: http://localhost/fpd.php?var=aaaaaaaaahggg. Sabemos que es vulnerable, si el servidor nos tira algo como esto (ejemplo real):




[QUOTE]

Fatal error: Call to undefined function sql_query() in E:\www\webvulnerable\includes\cargar_config.php on line 15[/QUOTE]




Esta era una web que andaba testeando (no les diré el link, para que no nos regañen, pero los bugs ya fueron reportados) junto con un amigo, y pude notar que tenia los directorios abiertos y podía viajar por los archivos del servidor, al estar en el directorio “/includes/” pude ver el archivo llamado “cargar_config.php”, me metí y no era necesario agregar un arreglo, ya que estaba el error hay.



Otra cosa, al poner un ARREGLO cualquiera, no solo nos tirara, un “FATAL ERROR”, también nos podría tirar otros error como los de SQL Injection como los “warnings”. Muchos han podido notar que al agregar un ' en un servidor vulnerable, nos tira un ERROR SQL y un directorio completo donde se encuentra el fichero vulnerable, eso es también es FULL PATH DISCLOSURE.



0x04. Alguna forma de aprovecharse



Podemos notar, un directorio completo:




[QUOTE]

E:\www\webvulnerable\includes\cargar_config.php[/QUOTE]




Imaginemos que la estructura del archivo vulnerable era de este tipo, y se encontraba en la parte física de la pagina: “http://localhost/fpd.php?var=”. Como dije arriba, FPD (Full Path Disclosure) es una vulnerabilidad, que muestra el PATH (Directorio), completo a donde se encuentra el error, y esta nos sirve nada mas como una HERRAMIENTA de AYUDA para construir otros ataques.



Por ejemplo, podemos (claro, si la web es vulnerable), realizar un ataque LFI:



http://localhost/fpd.php?var=../




Ya que tendríamos todo un path, ya tendríamos una mejor idea, de cómo realizar un ataque LFI claro.

Una forma buena, es realizar un LOAD_FILE, con el método SQL Injection.



Otros métodos buenos, son que a la hora de mostrar un PATH, nos tire directorios buenos como (admin, PANEL DE ADMINISTRACION, includes, scripts, entre otros peligrosos), y ver si están abierto, para sacar mucha mas info.

Este método, es muy fácil, no tiene mucha ciencia, pero puede que en algunos casos nos sirva.





0x05. Parchando.




Este bug, es fácil de reparar, ya que en la mayoría de los casos, se debe a la flojera de un administrador, si no es un “sistema web” y es un servidor web normal, podríamos tener un código vulnerable diferente a los otros, por eso podemos analizarlo y ver donde esta nuestro error.




Una forma fácil, es modificando el archivo “.htaccess” y poner los códigos “display_errors” en OFF para que no nos muestre error webs:



display_errors = Off



0x05. Conclusion




Al llegar al final de este tutorial, podemos ver como un simple bug, puede llegar a ser una buena herramienta para crear otro tipo de ataques, por eso es mejor mantenerte al tanto de nuevos bugs y taparlos hay mismo, ya que por la flojera o la confianza tuya, podemos tener intruso en nuestros servidores. Ten en cuenta esto:



No existe código 100% seguro





Autor: Zero Bits


Fecha: 23/10/09