Herramientas de usuario

Herramientas del sitio


sad:fedora14:p5

¡Esta es una revisión vieja del documento!


¿Qué es una inyección SQL?

La inyección SQL (también conocida como SQL fishing) es una técnica que se usa a menudo para atacar aplicaciones impulsadas por datos.

Esto se hace incluyendo porciones de declaraciones SQL en un campo de entrada en un intento de hacer que el sitio web pase un nuevo comando SQL falso a la base de datos (por ejemplo, volcar los contenidos de la base de datos al atacante). La inyección SQL es una técnica de inyección de código que explota una vulnerabilidad de seguridad en el software de una aplicación.

La vulnerabilidad ocurre cuando la entrada del usuario se filtra incorrectamente para los caracteres de escape literales de cadena incrustados en las declaraciones SQL o la entrada del usuario no se escribe con fuerza y ​​se ejecuta inesperadamente. La inyección SQL se conoce principalmente como un vector de ataque para sitios web, pero se puede usar para atacar cualquier tipo de base de datos SQL.

Requisitos para hacer la práctica Tener instalado Fedora 14 Tener instaldo BackTrack R1: Lección 1: Instalación de BackTrack 5 R1 Tener instalado Firebug

En esta práctica haremos lo siguiente:

  • Probar el script de Login.php para las vulnerabilidades de inyección de SQL.
  • Varios métodos sobre cómo omitir la cláusula de contraseña.
  • Proporcionar un breve tutorial de base de datos para ejemplos de los métodos reales de inyección de SQL.

Hacemos un ifconfig de las dos máquinas para saber la ip, luego en el Backtrack instalamos Firebug por si no está instaldo


Abrimos el navegador y vamos a http://getfirebug.com/releases/firebug/1.7/firebug-1.7.3.xpi e instalamos

clic en restar now


Desde el Bt vamos a http://ip-fedora/mutillidae y pulsamos la opcion de login/register

Test de la comilla simple (')

En el campo de texto “name” escribimos (') y pulsamos login

Analizamos que ha pasado

Una comilla simple (') es un carácter SQL reservado que rompe la consulta siguiente colocándola en el cuadro de texto Nombre. El mero hecho de que la consulta produzca un error significa que existe una gran posibilidad de que sea susceptible a una Inyección de SQL.

Que sentencia ha entendido el ordenador?

SELECT * FROM accounts WHERE username = ' AND password =' ​​' A continuación se muestra un ejemplo de una consulta normal SELECT * FROM accounts WHERE username = 'admin' AND password = 'adminpass' Login sin password hacemos una By-Pass Ahora reemplazamos ' or 1=1– (hay que poner espacio detrás de los los –) ¿Qué hemos hecho? Buscamos un nombre de usuario que sea igual a nada O donde 1 sea igual a 1. Entonces, creamos una condición que siempre es verdadera (O 1 = 1). La cadena “-” es un comentario en SQL. Usamos este truco para comentar el resto de la consulta SQL (AND password = ), que elimina esa autenticación de contraseña. SELECT * FROM accounts WHERE username = o 1 = 1– 'AND password =' ​​' Verificando resultados Ha iniciado sesión como administrador. Debido al diseño del código de Mutillidae, iniciamos sesión como administrador porque admin es el primer usuario en la tabla de cuentas. En DVWA, como una cadena similar (% 'o' 0 '=' 0 '-) muestra toda la lista aplicaciones que puede realizar el usuario Click en logout Ahora toca el campo password, hacemos la prueba de la comilla simple en el campo Password pulsamos en Login/register, ponemos Name: samurai y pen password pulsamos botón derecho e inspeccionar elemento Analizamos los resultados de la comilla simple (') Una comilla simple (') es un carácter SQL reservado que rompe la consulta siguiente al colocarla en el cuadro de texto Contraseña. El mero hecho de que la consulta produzca un error significa que existe una gran posibilidad de que podamos realizar una Inyección de SQL. SELECT * FROM accounts WHERE username='samurai' and password='

a continuación muestro un ejemplo normal

SELECT * FROM accounts WHERE username='samurai' AND password='samurai'

obteniendo el acceso poniendo comilla simple en el campo contraseña

Inspeccionamos el campo de texto contraseña hacemos Click en Login/Register ponemos en el campo Name: samurai en Password:pulsamos boton derecho del raton y pulsamos en “Inspect Element”

y reemplazamos la palabra password por la palabra text

Aplicamos el test que siempre es verdad (' or 1=1 – )

En name escribimos samurai en passwor escribimos ' or 1=1– (recuerda que tenemos que poner un espacio en blanco despues de los guiones) y pulsamos Login

Bueno, lo que veo son buenas noticias. Por un lado, estoy contento de haber iniciado sesión, pero debo iniciar sesión como samurai en lugar de administrador.

Hemos iniciado sesión como administrador, porque admin es el primer usuario en la tabla accounts

sad/fedora14/p5.1518283939.txt.gz · Última modificación: 2019/01/04 13:18 (editor externo)