Esta es una resumida entrada de las varias que ha blogeado snifferlabs, muy buenas entradas ha tener en cuenta cuando realicemos pruebas de seguridad a aplicaciones web.
Análisis Web OWASP, Ataques de Inyeccion SQL
En esta entrada veremos el primer punto del TOP 10 OWASP, en el cual conoceremos que es un ataque de Inyección SQL.
- Ataques de Inyeccion SQL
- Bypass a login por medio de Sqli.
- Evitar filtros.
Ataques de Inyeccion SQL
Los ataque de inyección SQL son usados con el fin de obtener información sensible de una base de datos, por medio de peticiones o consultas SQL, por lo tanto una inyección SQL es la insercción de datos en campos de recepción de información que se infiere ser vulnerables para la ejecución de comandos SQL.
Para conocer mas sobre lo que es un ataque de inyección SQL les invito a que lean en la guía de OWASP como explotar y como sanitizar esta debilidad.
Esta llega a ser la primera explotación realizada con ayuda de la herremienta, lo realizaremos al formulario de Login el cual sobreentendemos que puede ser vulnerable a un ataque de Sqli que los desarrolladors pasaron el nivel de seguridad por el arco del triunfo (esta vulnerabilidad aun persiste a pesar de que la sanitización es bastante simple realizarla.)
1.- Lo que haremos primero será ingresar dos valores en los campos de autenticación en este caso puse Snifer | Snifery los datos llegan a ser interceptados.
2.- El siguiente paso es click derecho y seleccionamos sent intruder.
3.- En este punto lo que tenemos que hacer es seleccionar el ataque Cluster Bomb. Además de ello debemos de agregar §CAMPO DE ATAQUE§ en los dos vectores de ataque.
4.- Luego de ello nos dirigimos a la pestaña Payloads, en los primeros campos Payload set tendremos 1 y 2, a lo cual tenemos la opción en cada uno de seleccionar un fichero del cual cargar los payloadas o bien adicionar uno a uno.
5.- Por ultimo atack! :D.
Pero aquí no termina todo, una vez que realiza el ataque iterará en los campos seleccionados, el resultado lo veremos en otra ventana en la cual se observara las iteraciones realizadas como la siguiente captura.
Pero que sucede no llegamos a tener un filtro para identificar los resultados que nos sirve, nos toca revisar petición por petición aun mas cuando todos son 20, llega a ser tedioso la revisión para evitar eso podemos seguir la respuesta se ve que cambia 282 y 297 podría ser un parámetro a observar pero muchas veces estos mantienen y la respuesta llega a ser diferente. Por lo tanto realizaremos un par de configuraciones.
Primero, necesitamos identificar algún mensaje o respuesta que nos da el sitio web cuando fallamos un intento de sesión, veremos un ejemplo el de Facebook, ahí tenemos algunos valores que podemos usar para validar.
Entonces esta configuración para identificar las respuestas que necesitamos filtrando, una vez que configuramos el ataque con intrudernos dirigimos a Options nos vamos a Grep-Match en el cual agregamos el termino que deseamos que valide, una vez que encuentre nos notifique.
Se observa que es posible hacer uso de expresiones regulares, honestamente este punto de las expresiones es mi talón de Aquiles no tengo un conocimiento avanzado.
Ahora vemos en la siguiente captura los dos estados los que se encuentran check son aquellos que devolvió como respuesta la sesión errónea y los que no están marcados son diferentes con ello, se reduce el área de trabajo.
Se ve que llevamos buen trecho en esta página, al validar accedemos como administradores, o el perfil que se encuentre en el sitio web, esta configuración no solo llega a ser usada en este tipo de vulnerabilidad también en otra aclarando esto vemos el resultado.
!ATENCION!
Para los que pregunten de donde obtener o con que diccionarios trabajar en las pruebas, tenemos a nuestra disponibilidad en Kali, lo que les recomiendo es hacer uso de ellas o bien generar sus propios archivos, para SQL, XSS, Path Transversal, de wfuzz que llega a tener los mejores diccionar según mi percepción.
Por lo tanto por si alguien pregunta referente a los diccionarios o de donde sacar aquí esta la respuesta, posterior a esto armare un listado referente de los payloads por decirlo así aunque con estos tenemos.
Evitar filtros
En el caso de existir algun tipo de filtro o control para los ataques que se realizen se debe de considerar lo siguiente la opción de Payload Encoding.
Como tambien en la parte de Payload Processing tenemos la opción de crear reglas cuando se ejecute el payload tenemos varias opciones al seleccionar la regla.
Por ejemplo cuando seleccionamos el encode nos brinda las siguientes opciones.
En una proxima entrada pasaremos a usar la herramienta estoy seguro por ahora terminamos con esta, espero les agrade, al finalizar las pruebas OWASP realizaremos un paso por los plugins.
Análisis Web OWASP,Referencia insegura de objetos
Esta debilidad o falencia viene nuevamente de la mala practica que se tiene o exposición de ficheros, directorios hasta base de datos un ejemplo seria el siguiente si no se cuenta con las medidas necesaria no mostraría este mensaje, de Inicie su Sesion, accediendo de manera directa al panel de administración.
BurpSuite - La pequeña navaja Alemana
BurpSuite I - Primeros Pasos
BurpSuite II - Intercepted, Tampering request! conociendo al proxy
Burpsuite III - Sitemap, Crawling, Vulnerability Scanning
BurpSuite IV - Configuración de Certificado digital, ProxyTOR?, guardando y recuperando
BurpSuite V - Engagement Tools
BurpSuite VI - Burp Suite Pro Real life tips and tricks
BurpSuite VII - Match and Replace, Modificaciones HTML, Encoding and decoding
BurpSuite VIII - Historia de peticiones, Comparando Sitemaps, Reporte de Vulnerabilidades
BurpSuite IX - Cookie Jar, Extensiones, guardado automático y estabilidad.
BurpSuite X - Metodología de Análisis Web con Owasp
Burpsuite XI - BurpSuite XI - Análisis Web OWASP, Conociendo la aplicación
BurpSuite XII - Análisis Web OWASP, Ataques de Inyeccion SQL
BurpSuite XIII - Análisis Web OWASP - Descubriendo directorios y ficheros ocultos
BurpSuite XIV - Análisis Web OWASP, Perdida de autenticación y Gestion de sesiones
BurpSuite XV - Análisis Web OWASP, Cross Site Scripting XSS
En el siguiente ejemplo veremos el acceso irrestricto a información o exposición de ficheros, directorios hasta base de datos un ejemplo seria el siguiente si no se cuenta con las medidas necesaria no mostraria este mensaje, de Inicie su Sesion, accederiamos de manera directa al panel de administración.
Otro ejemplo trabajando con un sitio web, el cual permite obtener información relacionada a los usuarios realizando un recorrido incremental del valor numérico que se tiene por URL lo veremos a continuación a que nos referimos.
Notaron que al realizar el cambio de 2 a 100 obtenemos otro nombre o valor como respuesta
Ahora el siguiente paso es identificar la petición en el historial de BurpSuite para realizar el envió al Intruder.
ALERTA: Esta debilidad de visualizar los datos, de manera incremental se encuentra en gran parte de los sitios muchas veces obtienes hasta documentos por lo tanto lo que veamos ahora es usado según la necesidad.
Despues de identificar el varlo que manipularemos para realizar las peticiones le asignamos el valor $$ al primer número, del mismo modo es lo mismo que ingresemos unicamente los comodines.
Vamos a Payloads y en el Tipo seleccionamos Numbers (Numeros), nos vamos a las opciones del Payload y seleccionamos el rango que se realizara la iteración como también la secuencia que seguirá en este caso es de a 1.
Antes de mandar al intruder y configurar el Payload realize la validación del Mínimo y el Máximo fui dando reduciendo de 2000, 1900,1800 y de ahí fui jugando hasta dar con el último valor.
Ahora este ultimo punto es importante ya que se debe considerar el tiempo que se dará entre petición, ya que algunos sitios pueden llegar a bloquear las peticiones cuando son recurrentes.
Una vez lanzado el ataque nos devuelve una respuesta en este caso vemos el status y es de 200 peticiones aceptadas nos dirigimos a la respuesta y en ello podemos ver que nos interesa el nombre ademas del correo que se encuentra en la petición que nos devuelve el servidor.
Pensando como un atacante, sacando los nombres y correos pueden ser usados para realizar un ataque dirigido de Phishing según el servicio que use el sitio web y que se quiere obtener.
Entonces nos vamos a la pestaña de Opciones que se encuentra en el ataque realizado con anterioridad en esto usaremos el Grep - Extract adicionamos uno nuevo en este ejemplo obtendremos el nombre para ello marcamos el Define start and end y marcamos el correo electrónico de manera automática se hablitaran los dos campos de inicio y limitante el mismo proceso lo realice para el nombre teniendo ya con ello dos campos para obtener.
Una vez que aceptamos los datos son cotejados de manera automática y nos habilita dos campos adicionales los cuales vemos a continuación.
Ahora estos datos si desean los pueden exportar en un excel para tenerlo listo para realizar alguna estadística de ser necesario.
A partir de esto notamos que muchas veces depende de nosotros para identificar alguna debilidad y saber como aprovecharla y explotarla con ayuda de la herramienta, recuerden la herramienta no hace a la persona es lo contrario nosotros hacemos a la herramienta porque necesita de nuestro análisis y conocimiento previo.
Ahora por ultimo, la herramienta al contar con el escaner de vulnerabilidades integrado identifico en el sitio que estamos usando para las pruebas un Path Transversal que nos permite acceder al fichero passwd que jugando con la vulnerabilidad puede ser posible acceder a algún fichero de configuración adicional de algún servicio.
Espero les agrade la entrada y lo que vimos en el, por cierto comentarles que ya inicie con el Ebook de Burpsuite realizando cambios de forma, y reordenando el contenido del mismo.
Entradas anteriores de la serie
Fuente: http://www.sniferl4bs.com/2015/07/burpsuite-xvi-analisis-web_25.html
Hey dude gracias por compartir pero medio mal que sea un copy paste tal cual y aun mas que se ponga erroneamente el blog sniferl4bs.com
ResponderEliminarRegards,
Snifee