SQLi-labs: Menos-5

Menos 5 experimento es: carácter, comillas simples, la inyección de error, inyección doble

En primer lugar, entre: HTTP: // localhost / menos 5 / el anteriormente mencionado de id = 1? 'Error:

Entrada: HTTP:..? // localhost / 5-Less / ID 1 = '. = 1% 1 y 23 es y HTTP :? // localhost / 5-Less / ID 1 =.. ' = 2% 1 y 23 es decir, el retorno a la página normal.:

Aquí es casi seguro inyección de carácter, pero no es lo mismo y no es menos1 página normal de eco, el mensaje de error sólo la página de error, que es un personaje, una inyección de error. Así que este es un nuevo tipo de situación.

En primer lugar debemos mirar lo que se le está dando la inyección. Vemos en el código fuente es una función del error de eco mysql_error ()

mysql_error, la operación se puede estimar () devuelve el texto de la operación MySQL mensaje de error de consulta de carácter:
$ sql = "SELECT * FROM usuarios WHERE ID = '$ ID' LIMIT 0,1";

A continuación presentamos la inyección de error. Utilizamos el piso de función () y la función rand () para conocer, en el que:
el papel de la función de piso retornos es menor o igual al valor máximo número entero, puede ser entendido como el redondeo hacia abajo, dejando sólo la parte entera.
rand () función se puede utilizar para generar 0 o 1, pero RAND (0) y rand () es esencialmente diferente, RAND (0) es equivalente a la función rand de acuerdo con () la función se pasa un parámetro, rand () 0 para el parámetro al número aleatorio. rand () número generado es completamente al azar, y se genera regularmente el rand (0), podemos tratar en la base de datos. rand de prueba ()

Iniciar sesión en nuestros laboratorios específicos SQLi-línea de comandos de base de datos, observe el uso y presentación de estas dos funciones:
la Planta SELECT (rand () * 2) de la mysql.user;

seleccionar piso (rand (0) * 2) a partir de mysql.user;

Aquí hemos ejecutar repetidamente los anteriores dos declaraciones, se dará cuenta de rand (0) es en realidad un pseudo-aleatorios, cada vez que los resultados son los mismos.

A continuación se ejecuta la instrucción:
el SELECT COUNT ( ), concat ((Planta (RAND () 2)), ';', (la versión SELECT ())) nombre del Grupo mysql.user por su nombre;

esta declaración ha sido correcta exportación

SELECT count ( ), el concat ((Planta (RAND (0) 2)), ';', (SELECT Versión ())) de la mysql.user Nombre del grupo por su nombre;

y esta declaración se le dará la información que el error de la razón es:
entradas duplicadas media group_key. Utilizamos grupo de consulta de grupo, la base de datos generará una tabla virtual, en esta tabla virtual, grupo por la parte posterior del campo como clave principal, por lo que esta tabla la clave principal es un nombre, así que básicamente comprende las razones que se le dio el la razón es principalmente porque la clave primaria de la tabla virtual repetición. De acuerdo con la declaración oficial de MySQL, grupo de operaciones que deben realizarse dos veces, la primera vez que es tomar el grupo por valor detrás del campo antes de la mesa virtual de contraste, para obtener primer grupo por valor de atrás; la segunda es la suposición detrás del grupo de valor del campo no existe en la tabla virtual, entonces tiene que ser insertado en las tablas virtuales, donde cuando se inserta ejecuta el segundo cálculo, ya que existe una cierta función aleatoriedad rand, el resultado de la segunda operación puede el primer resultado de la operación es inconsistente, pero el resultado de la operación ya puede existir en la tabla virtual, entonces el tiempo inevitablemente conducirá a la inserción de claves primarias duplicados, y luego emite un error.
Al mismo tiempo que vemos aquí en el mensaje de error con información sensible, es decir, seleccione la versión () versión de la base de datos está representada.

Se le hizo esta declaración en la página hacia arriba operación:
http: // localhost / Menos-5 / el anteriormente mencionado de id = 1 'de la Unión de SELECT COUNT ( ), 1, concat ((Planta (RAND (0) 2)),';', (seleccionar versión ())) nombre del grupo mysql.user por su nombre;% 23

Aquí vemos el número de versión de la base de datos a cabo la tormenta.

También podemos ver el usuario de la lista tormentas contraseña
http: // localhost / Menos-5 / el mencionado de id = 1 'de la Unión el SELECT COUNT ( ), 1, concat ((Planta (RAND (0) 2)),';', (seleccione contraseña de los usuarios limitan 1,1) ) nombre del grupo mysql.user por su nombre;% 23

Supongo que te gusta

Origin www.cnblogs.com/tangjf10/p/12600173.html
Recomendado
Clasificación