RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

Posts Tagged ‘ sqli ’

Vamos a terminar esta serie de post sobre las inyecciones de código a través de imágenes CAPTCHA. Habíamos desarrollado en los post anterior:

ANÁLISIS CAPTCHA: INYECCIÓN DE CÓDIGO SQL–PARTE I [AQUÍ]

  • Identificación de la vulnerabilidad
  • Explicación de los mecanismos de explotación

ANÁLISIS CAPTCHA: INYECCIÓN DE CÓDIGO SQL–PARTE II [AQUÍ]

  • Descarga de la imagen captcha a través de python
  • Tratamiento de la imagen captcha descargada con python

Sería buena idea que revisaran estos post  para poder entender este último con más claridad. En esta última parte toca realizar siguiente:

  1. Explicación del ataque a través de Blind SQLi
  2. Automatización del ataque con un script en Python

Explicación del ataque a través de Blind SQLi

Cuando uno realiza un ataque del tipo Blind SQLi, tenemos dos manera de poder explotarla: inyecciones “Boolean Based” y “Time Based”, como nos encontramos con un formulario que ingresa comentarios en la base de datos, es decir nos enfrentamos a un INSERT, vamos a utilizar las inyecciones del tipo “Time Based”.

Para realizar las inyecciones de este tipo y obtener información de este tipo el flujo de acciones realizadas por una herramienta como SQLMAP es mas o menos el siguiente:

 

image

 

Sin embargo, ahora que tenemos que descifrar la imagen captcha del formulario el flujo cambia ligeramente, aunque el cambio no es muy grande toca tenerlo presente para entender finalmente como funciona el script desarrollado. El nuevo flujo es el siguiente:

 

image

 

Como lo habrán notado, las características principales de que debe cumplir este script son acciones recurrentes: descargar el captcha, procesar la imagen (identificar las letras) y finalmente verificar si la imagen descargada es la correcta. Estas características no son soportadas por SQLMap por lo que tienen que ser características primordiales implementadas en el script.

Descifrado de la imagen captcha

Como habíamos tratado en la segunda parte de este post, primero toca descargar y trabajar la imagen lo mejor posible para finalmente descifrarlo e identificar los valores que tiene la imagen. Para poder analizarlo en este caso vamos a utilizar un software de “Reconocimiento Óptico de Caracteres” (OCR), Google ha desarrollado un software de reconocimiento óptico llamado Tesseract-OCR y para este caso nos vale muy bien poder utilizarlo.

Podríamos utilizarlo de diversas maneras: la primera que se me ocurre es analizando letra por letra trabajada previamente y la segunda que se me ocurre es analizando todas las letras en una sola acción; creo que dependería de la situación a la que nos enfrentemos, por ejemplo, si tuviéramos caracteres inclinados sería mejor utilizar el análisis de caracter por caracter, en este caso no es necesario esto por lo que vale analizar toda la imagen a la vez.

Utilizar Tesseract-OCR de Google no es nada complicado, tiene versiones para Windows y para Linux y puede ser llamado desde un script Python con facilidad, lo pueden descargar desde [AQUÍ].

 

SNAGHTML31942f8

 

SNAGHTML2d489c6

 

Desarrollo del Script en Python

En base a lo explicado arriba lo último que toca realizar es el script en python según al segundo flujo mostrado, para el desarrollo del script he utilizado parte del script que alguna vez me compartió  “ALGUIEN” pero ha tocado modificarlo para agregarle la nueva lógica explicada.

Popularity: 13% [?]

sqli_clase4

Esta es la última entrada de la primera serie de videotutoriales sobre INYECCIONES SQL basadas en uniones. Hasta aquí hemos visto todo lo básico, desde aprender algo del lenguaje SQL hasta extraer la información de las tablas, lo siguiente que vamos a analizar son las inyecciones SQL a ciegas o conocidas como Blind SQLi. Para terminar esta primera parte voy a publicar el último video y el script desarrollado en Python para automatizar los ataques.

Gracias a todos por sus comentarios enviados a mi correo, de alguna manera se siente bien que haya personas que lean este humilde blog.

Temario de la Clase 04:

  1. Automatizar ataques de SQLi con Python
  2. Ataques a páginas web con nuestro script

El material utilizado:

  1. El código de la aplicación web:  [DESCARGAR AQUÍ]
  2. La base de datos de la aplicación: [DESCARGAR AQUÍ]
  3. La presentación en PREZI: [DESCARGAR AQUÍ]

Saludos,

Omar

********************************************************

Aquí les dejo el script desarrollado para el videotutorial.

Popularity: 31% [?]

1052485_10151493036042666_45904221_oPrimero lo primero:

Gracias a todos los que están siguiendo estos videotutoriales, hay muchos que me están escribiendo para que siga con los videos y haciendo hasta pedidos alucinantes, pedidos como:

- “Hey brother hackeame esta página por favor”
- “Ayúdame a encontrar el password de esta aplicación”
- “Te pago 500 dólares si me hackeas esta página brother”

Obviamente otros me escriben para agradecerme y felicitarme por los videos, muchas gracias a todos los escriben Risa y disculpen si no puedo contestarles a todos pero realmente es humanamente imposible poder hacerlo, dicho esto, continuemos con el tercer videotutorial.

Temario de la Clase 03:

1. Obtener información(registros) de las Bases de Datos
2. Obtener información de la Base de Datos MYSQL
- Tabla User
- Doble SHA1, funcion password
3. Craking de contraseñas
- Rainbow tables
4. Ataques con SQLMAP

El material utilizado:

  1. El código de la aplicación web:  [DESCARGAR AQUÍ]
  2. La base de datos de la aplicación: [DESCARGAR AQUÍ]
  3. La presentación en PREZI: [DESCARGAR AQUÍ]

Aquí el videotutorial. Saludos a todos.

Popularity: 26% [?]

1Hoy no nada que decir, sólo publicar el segundo videotutorial de inyecciones SQL.

El temario tocado en el segundo videotutorial es:

Temario Clase 2:

  1. Herramientas que nos ayudan a identificar SQLi
  2. Obtener información a través de SQLi
  3. Inyecciones basadas en UNIONES
    - Obtener número columnas con ORDER BY: Búsqueda binaria
    - Realizando la inyección con uniones
  4. Funciones básicas de MySQL
    - Función: Database, user, current_user, datadir
  5. Funciones de concatenación: CONCAT, GROUP_CONCAT, CONCAT_WS
  6. Analizando la base de datos: INFORMATION_SCHEMA

Sin más que decirles, aquí el segundo video. Saludos,

El material utilizado:

  1. El código de la aplicación web:  [DESCARGAR AQUÍ]
  2. La base de datos de la aplicación: [DESCARGAR AQUÍ]
  3. La presentación en PREZI: [DESCARGAR AQUÍ]

Popularity: 26% [?]

mini

Este es el primer post de una serie de entradas (al menos eso espero) sobre las inyecciones SQL, los objetivos de las próximas entradas son las siguientes:

  1. Entender como funcionas las inyecciones SQL
  2. Entender los diferentes mecanismos y técnicas para realizar inyecciones SQL
  3. Automatizar nuestros propios ataques con Python
  4. Ocuparme en algo y no estar aburrido (ese es un objetivo sólo para el autor de este Blog)

La idea es que ustedes puedan realizar sus propias inyecciones sin necesitar de una herramienta cuando se encuentren alguna inyección fuera de lo convencional, es decir, puedan ustedes realizar su propio script y automatizar el ataque. La motivación para realizar estos post se debió a que he escuchado a tres personas que se están preparando para rendir el examen de CEHv8 expresar frases como estas:

*******************************************
Frase 1: “Pucha…. toda la parte de scaneo, enumeración, análisis de vulnerabilidades me lo se pero donde tengo problemas es en la parte web”
Frase 2: “Yo no programo hace muuuucho por eso no me siento preparado para las preguntas sobre aplicaciones web”
Frase 3: “Deberían quitar la parte de seguridad de aplicaciones y al toque doy el examen” – la frase más divertida de todas.
*******************************************

Consideraciones para el curso

  1. Cada clase se adjuntará un archivo donde está el código de la aplicación web y la base de datos requerida.
  2. La primera parte del curso es teoría (lo siento pero es necesario),es decir, cómo es que funciona o se realiza la inyección de manera conceptual (esta es la parte más importante)
  3. Crearemos nuestros propio script para automatizar el ataque, el script lo estoy haciendo en Python. De pronto toca aprender algo de Python pero tampoco vamos a salir unos expertos en esto, no es la idea.
  4. Finalmente usaremos SQLMAP u otra herramienta para incluirla dentro del estudio

Clase 1: Inyecciones basadas en UNIONES (inyecciones NORMALES)

Como lo veremos más adelante existen diferentes mecanismos para realizar inyecciones SQL, conforme avancemos con las entradas las iremos explicando así que no desesperen. Comenzaremos con dos (02) o hasta tres (03) videotutoriales (es que aun no se cuanto me pueda tardar en explicar todo) sobre las inyecciones basadas en uniones o como también la conocen algunos, “Inyecciones Normales”. Estas inyecciones sirven para explicar absolutamente todo lo básico sobre las inyecciones SQL así que sin más preámbulos iniciemos.

Los puntos a tocar en la Clase 1 son:

  1. Concepto de SQLi (SQL Injection)
  2. Entender como funciona MySQL
  3. ¿Cómo identificar las inyecciones SQL?
    - Concatenaciones
    - Operadores matemáticos
    - Errores
  4. Entendiendo los distintos tipos de sentencias SQL

El material utilizado:

  1. El código de la aplicación web:  [DESCARGAR AQUÍ]
  2. La base de datos de la aplicación: [DESCARGAR AQUÍ]
  3. La presentación en PREZI: [DESCARGAR AQUÍ]

Aquí les dejo el primero videotutorial. Hasta la próxima. Saludos.

Popularity: 23% [?]