Muy bueno amigo. Un gran fallo por parte de amazon u otro servicios no hacer una confirmacion mediante un archivo xml o algo para saber que realemnte tu eres el propietario del dominio.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Páginas1
#2
Hacking ShowOff / Re:Me ahorre dos días de espera por un fallo de SQL injection
Agosto 15, 2016, 12:01:03 PM
me parece muy interesante !
#3
Seguridad web y en servidores / Re:Explotando un LFI en Java Server Pages
Abril 08, 2016, 05:11:09 AM
No he podido probarlo, pero sería algo así:
index.jsp?sec=noticias
index.jsp?sec=noticias
#4
Seguridad web y en servidores / Explotando un LFI en Java Server Pages
Abril 07, 2016, 07:11:29 PM
Que tal gente, aqui os dejo otro artículo que escribí en mi blog hace unas semanas, espero que os resulte interesante
Introducción
En esta entrada vamos a ver como explotar un bug LFI (Local File Inclusion) en una web bajo JSP. Un LFI es una vulnerabilidad mediante la cual un atacante puede acceder a ficheros no destinados al usuario mediante un parámetro no controlado en un sistema modular.
LFI y estructura de archivos en un proyecto JSP
Como sabemos para explotar un LFI debemos conocer la estructura del ficheros del sistema al que estamos atacando, es decir si la web es por ejemplo de tipo index.jsp?pagina=inicio.jsp y conocemos que hay un directorio llamado panel, en el cual hay un jsp para agregar un usuario llamado gestionUsuarios.jps, introduciríamos la url index.jsp?pagina=panel/gestionUsuarios.jsp, y si desconocemos la estructura de los archivos y directorios de la web, habría que meterle en base a fuerza bruta. En JSP tenemos una ventaja, y es que los proyectos web en java están formados por la siguiente extructura:
Como vemos en la imagen, existe una una carpeta llamada WEB-INF en una ruta superior a la base de la aplicación, en la cual esta el archivo web.xml que es donde metemos diversos parámetros de configuración, y tirando de ahí ya se puede comenzar a extraer datos. En ese directorio también se guardan diferentes archivos de configuración como properties y demás, y utilizando fuerza bruta o conociendo algún dato del sistema podremos extraerlos.
Explotando el bug
Pues bien, ahora voy a llevar a cabo un ejemplo real de este ataque en una web que he encontrado la cual vamos a anonimizar, que tras ver su tipo de url vemos que tiene un parametro llamado module el cual parece vulnerable a LFI.
Pues viendo que está en Java y conociendo el detalle del famoso archivo web.xml, intentaremos escalar directorios y incluir este archivo a ver que sale, y tras un par de pruebas vemos que está tres directorios por encima de la base del sistema de modulación, y nos imprime información delicada en pantalla:
Como vemos, nos está soltando en pantalla todo el contenido del archivo, y si abrimos el código fuente de la web para verlo mas limpio podremos destacar lo siguiente:
Tras examinar la información que nos devuelve el archivo, podemos destacar:
-Vemos los datos de configuración de la base de datos MySQL a la que se conecta el sistema, que esta en la propia máquina (127.0.0.1). Con esto si el servidor no tiene bloqueadas las conexiones externas (que son muchos...) ya tendríamos acceso completo a la base de datos.
-También vemos la ruta de los archivos LOG del apache, y una cosa curiosa, que el servidor esta en windows... Que podamos conocer la ruta de los logs es muy peligroso, puesto que podríamos hacer peticiones vía HTTP con código java inyectado en el GET, y luego los incluimos por el LFI y dicho código que hemos mandado por GET anteriormente se ejecutaría, lo que nos permitiría ejecutar comandos en el propio servidor y subir una shell para aumentar nuestro control sobre este.
-Por ultimo cabe destacar que nos muestra las rutas de varios archivos de configuración que están en el mismo directorio, que tras acceder a ellos vemos que definen diversos parámetros de configuración, librerías y demás datos que el atacante puede aprovechar
Conclusión:
Para concluir este post, sobra mencionar que tenemos que tener cuidado cuando hagamos un sistema modular mediante includes, y para evitar este tipo de vulnerabilidades tenemos dos opciones, o almacenamos los módulos o archivos disponibles a incluir en un array, o si no también podemos controlar que en la variable no se puedan insertar puntos ni barras, para que así no se pueda descender ni escalar del directorio de los módulos a incluir.
Introducción
En esta entrada vamos a ver como explotar un bug LFI (Local File Inclusion) en una web bajo JSP. Un LFI es una vulnerabilidad mediante la cual un atacante puede acceder a ficheros no destinados al usuario mediante un parámetro no controlado en un sistema modular.
LFI y estructura de archivos en un proyecto JSP
Como sabemos para explotar un LFI debemos conocer la estructura del ficheros del sistema al que estamos atacando, es decir si la web es por ejemplo de tipo index.jsp?pagina=inicio.jsp y conocemos que hay un directorio llamado panel, en el cual hay un jsp para agregar un usuario llamado gestionUsuarios.jps, introduciríamos la url index.jsp?pagina=panel/gestionUsuarios.jsp, y si desconocemos la estructura de los archivos y directorios de la web, habría que meterle en base a fuerza bruta. En JSP tenemos una ventaja, y es que los proyectos web en java están formados por la siguiente extructura:
Como vemos en la imagen, existe una una carpeta llamada WEB-INF en una ruta superior a la base de la aplicación, en la cual esta el archivo web.xml que es donde metemos diversos parámetros de configuración, y tirando de ahí ya se puede comenzar a extraer datos. En ese directorio también se guardan diferentes archivos de configuración como properties y demás, y utilizando fuerza bruta o conociendo algún dato del sistema podremos extraerlos.
Explotando el bug
Pues bien, ahora voy a llevar a cabo un ejemplo real de este ataque en una web que he encontrado la cual vamos a anonimizar, que tras ver su tipo de url vemos que tiene un parametro llamado module el cual parece vulnerable a LFI.
Pues viendo que está en Java y conociendo el detalle del famoso archivo web.xml, intentaremos escalar directorios y incluir este archivo a ver que sale, y tras un par de pruebas vemos que está tres directorios por encima de la base del sistema de modulación, y nos imprime información delicada en pantalla:
Como vemos, nos está soltando en pantalla todo el contenido del archivo, y si abrimos el código fuente de la web para verlo mas limpio podremos destacar lo siguiente:
Tras examinar la información que nos devuelve el archivo, podemos destacar:
-Vemos los datos de configuración de la base de datos MySQL a la que se conecta el sistema, que esta en la propia máquina (127.0.0.1). Con esto si el servidor no tiene bloqueadas las conexiones externas (que son muchos...) ya tendríamos acceso completo a la base de datos.
-También vemos la ruta de los archivos LOG del apache, y una cosa curiosa, que el servidor esta en windows... Que podamos conocer la ruta de los logs es muy peligroso, puesto que podríamos hacer peticiones vía HTTP con código java inyectado en el GET, y luego los incluimos por el LFI y dicho código que hemos mandado por GET anteriormente se ejecutaría, lo que nos permitiría ejecutar comandos en el propio servidor y subir una shell para aumentar nuestro control sobre este.
-Por ultimo cabe destacar que nos muestra las rutas de varios archivos de configuración que están en el mismo directorio, que tras acceder a ellos vemos que definen diversos parámetros de configuración, librerías y demás datos que el atacante puede aprovechar
Conclusión:
Para concluir este post, sobra mencionar que tenemos que tener cuidado cuando hagamos un sistema modular mediante includes, y para evitar este tipo de vulnerabilidades tenemos dos opciones, o almacenamos los módulos o archivos disponibles a incluir en un array, o si no también podemos controlar que en la variable no se puedan insertar puntos ni barras, para que así no se pueda descender ni escalar del directorio de los módulos a incluir.
#5
Bugs y Exploits / Re:Engañando al WAF con XMP
Abril 07, 2016, 05:57:17 AM
Muy ingenioso, saludos !
#6
Seguridad web y en servidores / Bypasseando mod_security y ejecutando inyecciones SQL
Abril 06, 2016, 08:24:27 AM
Buenas chicos, aquí os dejo este "artículo" que escribí inicialmente en un blog que tengo, y lo publico aquí para que sea de utilidad a los que desconozcan este método de bypassear el modsecurity.
Introduccion
Como muchos conocemos, por allá por el 2005 con la aparición de las inyecciones SQL y demás agujeros de seguridad en php, Apache implementó un modulo llamado mod_security el cual funciona como una especie de WAF (Web Application Firewall) que bloquea nuestras peticiones a la aplicación cuando detecta valores sospechosos por GET, POST, COOKIE, etc... Hoy en día siguen habiendo muchas aplicaciones web (desde la de la tienda del chapuzas de la esquina, hasta gubernamentales) con este modulo activado en su servidor pensando así sus administradores que está libres de posibles inyecciones y demás.
¿Cómo funciona mod_security?
El mod_security actúa en una capa sobre la ejecución de código, filtrando las peticiones al servidor a las que lleguen parámetros sospechosos como puede ser por ejemplo en una variable GET un "AND 1=1", UNION, entre otros... Entonces si este es el caso el servidor bloquea la peticion mostrándonos una pagina de error. De esta manera nos impide poder realizar una inyección SQL.
Rompiendo el mod_security
Sabiendo que el mod_security se blinda funcionando con un filtrado de expresiones, para evitarlo tan solo hay que saltar ese filtrado, pero claro si en el están incluidas palabras como UNION, UpdateXML, SELECT, WHERE, etc.. ¿cómo conseguimos ejecutar nuestras sentencias? pues muy sencillo, en MySQL existe una sintaxis para ejecutar dichos parámetros solo si el MySQL que se ejecuta es bajo una versión en concreto (ideal para los dump) la cual funciona de la siguiente manera:
El código anterior si lo ejecutamos en una versión 4.x de MySQL solo ejecutará la primera sentencia, pues en la segunda le estamos diciendo que sea en versiones mayores a la 5. ¿Qué conseguimos con esto? pues que el mod_security no tiene filtrada esta sintaxis, es decir que cuando introducimos una petición GET con la sentencia en este formato se la tragará y nos ejecutará la inyección, aquí dejo algunos ejemplos:
Conclusión
Como conclusión final de esta entrada pues creo que sobra decir, que lo mejor es hacer nuestras aplicaciones seguras, y evitar llegar a practicas como estas, pues un WAF, ya sea mod_security u otro en muchos casos no es seguro y la seguridad de nuestra web puede caer. Y en caso de que el WAF fuera seguro, imaginaros que en un momento por algún despiste del administrador, actualización o algo este se desactive, nuestra aplicación quedaría expuesta, así que lo mejor es no depender de estos módulos.
Introduccion
Como muchos conocemos, por allá por el 2005 con la aparición de las inyecciones SQL y demás agujeros de seguridad en php, Apache implementó un modulo llamado mod_security el cual funciona como una especie de WAF (Web Application Firewall) que bloquea nuestras peticiones a la aplicación cuando detecta valores sospechosos por GET, POST, COOKIE, etc... Hoy en día siguen habiendo muchas aplicaciones web (desde la de la tienda del chapuzas de la esquina, hasta gubernamentales) con este modulo activado en su servidor pensando así sus administradores que está libres de posibles inyecciones y demás.
¿Cómo funciona mod_security?
El mod_security actúa en una capa sobre la ejecución de código, filtrando las peticiones al servidor a las que lleguen parámetros sospechosos como puede ser por ejemplo en una variable GET un "AND 1=1", UNION, entre otros... Entonces si este es el caso el servidor bloquea la peticion mostrándonos una pagina de error. De esta manera nos impide poder realizar una inyección SQL.
Rompiendo el mod_security
Sabiendo que el mod_security se blinda funcionando con un filtrado de expresiones, para evitarlo tan solo hay que saltar ese filtrado, pero claro si en el están incluidas palabras como UNION, UpdateXML, SELECT, WHERE, etc.. ¿cómo conseguimos ejecutar nuestras sentencias? pues muy sencillo, en MySQL existe una sintaxis para ejecutar dichos parámetros solo si el MySQL que se ejecuta es bajo una versión en concreto (ideal para los dump) la cual funciona de la siguiente manera:
El código anterior si lo ejecutamos en una versión 4.x de MySQL solo ejecutará la primera sentencia, pues en la segunda le estamos diciendo que sea en versiones mayores a la 5. ¿Qué conseguimos con esto? pues que el mod_security no tiene filtrada esta sintaxis, es decir que cuando introducimos una petición GET con la sentencia en este formato se la tragará y nos ejecutará la inyección, aquí dejo algunos ejemplos:
Conclusión
Como conclusión final de esta entrada pues creo que sobra decir, que lo mejor es hacer nuestras aplicaciones seguras, y evitar llegar a practicas como estas, pues un WAF, ya sea mod_security u otro en muchos casos no es seguro y la seguridad de nuestra web puede caer. Y en caso de que el WAF fuera seguro, imaginaros que en un momento por algún despiste del administrador, actualización o algo este se desactive, nuestra aplicación quedaría expuesta, así que lo mejor es no depender de estos módulos.
#7
Hacking / Re:Base de Datos con pyrit para atacar WPA/WPA2
Enero 07, 2016, 12:14:31 PM
Muy buena utilidad, la desconocía por completo
Páginas1