RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

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% [?]

Si te gusto este post, asegurate de suscribirte a mi RSS feed!

Omar Palomino

Hola mi nombre es Omar Palomino. Si te gustan las noticias de mi blog, no olvides suscribirte a la página. Puedes leer más en Acerca de MI, o bien ponerte en contacto conmigo al correo: omarc320@gmail.com

More Posts - Website

Post Relacionados

SI TE GUSTO ESTE ARTICULO, COMPARTELO!


Write a Comment

*

Spam Protection by WP-SpamFree