Información de fondo: Inyección de SQL como tarea de la escuela. Acceso a bypass. Dados dos campos de entrada nombre y contraseña. Confirmar a través del botón resolver.
Información sobre lo que tengo y pude averiguar:
- obviamente es una tarea vulnerable iniciar sesión en un sistema, mientras se olvida la contraseña ( formulario clásico con campos de entrada: nombre:
INPUT
, contraseña:INPUT
) - se proporciona una sugerencia de que mi ID de inicio de sesión para la página de tareas es siempre aceptada, por lo tanto, solo debe faltar la contraseña (form: name: "my ID", contraseña: ENTRADA (?))
- el servidor ejecuta / emula MySQL , lo encontré debido a errores que recibí al intentar diferentes entradas (por ejemplo, "'OR 1 = 1" -Tricks, Union- Comandos, Outcommenting, etc.):
- - > la estructura se muestra a través de los errores de sintaxis de MySQL:
SELECT name,password FROM login WHERE name='xyz' and password='xyz'
- - > Los comandos de unión funcionan debido, por ejemplo, a errores de número de columna
- Las comillas mágicas están desactivadas (?) o no podría evocar comandos SQL, supongo
- El uso de caracteres GBK para evitar la manipulación a través de 'tampoco funcionó, parece que no se están reconociendo
- No hay código PHP disponible
- El servidor devuelve ' tarea resuelta ' cuando el inicio de sesión es exitoso
Pregunta: ¿Qué posibilidades me quedan por probar para finalmente iniciar sesión en el sistema correctamente mediante inyección SQL?
Ejemplos de entradas que probé:
name: myID
[que es el ID que sugiere la sugerencia]
contraseña: ' OR '1'='1
- el servidor devuelve ' respuesta incorrecta ' (el inicio de sesión no fue exitoso), no hay errores de mysql
nombre: myID' OR '1'='1' --
contraseña: whatever
- mismo resultado
nombre: myID' AND NOT ('1'='2
contraseña: foo') AND name='myID' LIMIT 1 #
- mismo resultado
Errores, por ejemplo, cuando:
nombre: myID' OR 1=1
contraseña: whatever
- el servidor devuelve ' respuesta incorrecta ' (el inicio de sesión no fue exitoso), da como resultado un error de sintaxis, porque la entrada se coloca en
' '