sql >> Base de Datos >  >> RDS >> Mysql

Encontré 'OR 1=1/* inyección sql en la base de datos de mi boletín

'OR 1=1 es un intento de hacer que una consulta tenga éxito sin importar qué
El /* es un intento de iniciar un comentario de varias líneas, por lo que se ignora el resto de la consulta.

Un ejemplo sería

SELECT userid 
FROM users 
WHERE username = ''OR 1=1/*' 
    AND password = ''
    AND domain = ''

Como puede ver, si tuviera que completar el campo de nombre de usuario sin escapar del ' independientemente de las credenciales que el usuario pase en la consulta, devolverá todos los ID de usuario en el sistema que probablemente otorgarán acceso al atacante (posiblemente acceso de administrador si el administrador es su primer usuario). También notará que el resto de la consulta se comentaría debido a /* incluyendo el verdadero ' .

El hecho de que pueda ver el valor en su base de datos significa que se escapó y que ese ataque en particular no tuvo éxito. Sin embargo, debe investigar si se realizaron otros intentos.