Mostrando entradas con la etiqueta Auditorias. Mostrar todas las entradas
Mostrando entradas con la etiqueta Auditorias. Mostrar todas las entradas

martes, 9 de septiembre de 2014

Tip para inyecciones en Mongo DB

 

En auditorías donde nos encontramos ante bases de datos NOSQL como puede ser Mongo DB uno de los problemas con los que nos solemos encontrar al igual que con bases de datos SQL es el filtrado de los parámetros enviados, este filtrado con la idea de combatir inyecciones se suele centrar en el remplazo o escapado de caracteres como las comillas simples o las dobles y las backslash, pero como veremos en este artículo a veces cuando nos encontramos ante ciertas situaciones es posible sin necesidad de escapar los caracteres entre los que se encuentra enjaulado el parámetro existe posibilidad de obtener todos los resultados de una colección.

En el ejemplo siguiente, si se estuviesen filtrando caracteres como las comillas simples o las dobles y las backslash no podríamos inyectar otra instrucción

{ "ip" : " Parámetro_enviado_por_GET "}

clip_image001

Sin embargo si nos encontrásemos con un escenario como el siguiente que aun no siendo tan común es posible, no sería necesario escapar los caracteres anteriormente mencionados para poder armar una buena en la auditoría por ejemplo listando todos los resultados de la colección.

{ "ip" : { $regex: ' Parámetro_enviado_por_GET ', $options: 'i' }}

Y es que como veremos a continuación, basta con añadir dos caracteres que raramente son tenidos en cuenta a la hora de filtrar los datos de entrada a la aplicación

clip_image002

Así de sencillo dos puntos o cualquier otro carácter y un asterisco y como se aprecia nos devuelven todos los resultados de la colección, en este caso 50, así que ya sabéis chavales añadid un caracter cualquiera y un asterisco a vuestros diccionarios de inyecciones que os pueden dar una grata sorpresa en vuestras auditorías, a mí me la dio, ya que me devolvieron todos los usuarios y sus datos de la colección ordenaditos en una tabla, que más se puede pedir.

miércoles, 3 de septiembre de 2014

DS_Store Analyzer Online

 

Bueno para los que no lo sepan los ficheros DS_Store son originales de los sistemas Mac OS que están ocultos, y se encarga el propio Finder de crearlos con información del tipo de vista, iconos, columnas, etc, aparece la configuración de la personalización del directorio donde se ha creado, además de los nombres de los ficheros y directorios que cuelgan de él y por este detalle desde el punto de vista de la seguridad existe una fuga de información, ya que los usuarios incautos al mover directorios en un Mac OS a su servidor web accesible por cualquiera revela ficheros y directorios que tal vez no podrían listarse de otra forma. Hace algún tiempo hice una tool en Java y en C# para obtener nombres de ficheros y directorios ocultos en los ficheros .DS_Store, ya por fin traigo una aplicación online para analizar estos ficheros que encuentro en mis auditorías.

Lo cierto es que hacía tiempo que andaba con la idea de hacerla online pero por una cosa u otra además por lo cansado que termino cuando llego del curro pues la he ido dejando aparcada, al final aprovechando mis vacas en Fuerteventura me he puesto y la he terminado.

image
Imagen1: DS_Store Analyzer Online

La característica más interesante a remarcar de la aplicación, es la cantidad de patrones de búsqueda utilizados para encontrar los nombres de los ficheros y directorios en el archivo DS_Store.

Patrones de búsqueda: Ilo, icg, lg1, moD, ph1, lsv, vSr.

Más adelante mi intención es tener la opción de devolver los resultados en XML o JSON.

Y sin más les dejo el enlace

http://disaster-lab.itsm3.com/ds_store.php

miércoles, 18 de diciembre de 2013

Facilitando las auditorias con Google Hacking + AAD

Cuando necesitamos auditar una web y queremos tirar de los resultados de google hacking uno de los trucos que suelo tener en cuenta es tirar del operador -inurl: para descartar aplicaciones, variables de aplicaciones incluso dominios que ya he comprobado.
Un ejemplo sería el siguiente. www.tussam.es identifico la tecnología que voy a auditar en este caso php.
clip_image001[12]
Imagen 1: Búsqueda con Dork sin exclusión
Entro en el primer resultado compruebo que no haya nada interesante y vuelvo a realizar la búsqueda descartando la variable id ya que he comprobado que no es vulnerable
clip_image002[12]
Imagen 2: Búsqueda con Dork con exclusión
El problema de esta consulta es que pueden existir otras aplicaciones o directorios en la web que no contengan precisamente en la variable la cadena id, con lo cual estaríamos descartándola, pero sin embargo seriamos capaces de añadir más cantidad de operadores excluyentes si solo nos fijamos en las variables
Fijémonos entre la cantidad de exclusiones sin pasarnos del límite de palabras en la consulta, entre “dominio+aplicación+variable” (Primeros 2 bloques) y solo “variable” (último bloque).
Google
8 operadores sobrepasa el límite
site:www.tussam.es inurl:php
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
"www" (y las palabras que le siguen) se ignoró porque limitamos las consultas a 32 palabras.
Google
Búsqueda Exacta (la ideal)
Sin pasarme del límite 7 operadores
site:www.tussam.es inurl:php
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
-inurl:www.tussam.es/index.php?id=
Bing
Búsqueda Exacta (la ideal)
13 operadores sin pasarme del limite
site:www.tussam.es -instreamset:(url):”php”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
-instreamset:(url):”www.tussam.es/index.php?id=”
Google
Búsqueda en base a las variables GET
Sin pasarme del límite. 30 operadores con variables
clip_image003[7]
Bing
Sin pasarme del límite. 20 operadores con variables
clip_image004[96]
¿Vale la pena correr el riesgo basándonos solo en las variables? por supuesto que sí, tenemos más cantidad de exclusiones.
Filtrando correctamente con Google el límite ronda los 7 operadores mientras con Bing llegamos a 13 operadores sin pasarnos.
En cambio filtrando en base a las variables, Google con 30 frente a los 20 permitidos por Bing, queda claro con cual nos quedaríamos por ello hay que decir que Google la tiene más larga con 30 contra 20 de Bing y es que aquí el tamaño sí importa jeje.
Bueno pues hice una herramienta para automatizar este proceso, que trabaja con google y con su querido captcha problema que no tenemos con Bing
La herramienta tiene el siguiente aspecto.
clip_image005[12]
Imagen 3: AAD Interfaz
Simplemente es necesario que en la primera entrada de datos se le envié el dork intentando filtrar lo más posible los resultados, por ello que filtro también por la tecnología para evitar html, jpg, png, etc, de este modo acortar los resultados.
En el segundo filtro se puede especificar con una expresión regular por ejemplo [?] de este modo aparecerían todas las urls parametrizadas, y es que a quien no le gustaría que a google se le pudiesen pasar expresiones regulares eh? El que no le guste que tire la primera piedra… ¬¬ vale sigamos.
Y la última opción que sirva para ver los operadores de exclusión con las variables GET encontradas en la web.
clip_image006[132]
Imagen 4: ADD en acción y abajo misma ultima búsqueda de ADD pero en el buscador
Y hasta aquí este post espero que os haya gustado y es que últimamente no posteo tan seguido por que ando liado con la FaasT y cuando llego a la casa estoy sExo polvo :p.
Salu2!; 

Se puede descargar de aqui:  https://sourceforge.net/projects/aadgoogle/