EXPLOITS DE UNA MADRE
Puede parecer una mierda de cartel pero justo el año pasado bobby tables me enseñó a evitar ataques de injection de SQL mediante python para una empresa para la que tenía que desarollar un software básico.
http://bobby-tables.com/python para quien quiera saber más.
#10 #10 michaeljacksonsfan dijo: no todos sabemos de ordenadores #11 #11 usted_es_diabolico dijo: Y la gracia?Con hacer una búsqueda rápida de iSQL o SQL injection en Google te sale lo que es. Explico: Cuando inicias sesión, ej: CR, el servidor debe hacer una consulta a la tabla de user y pass. Al hacer eso la linea es continua (SELECT users FROM accounts WHERE name = "admin" AND pass = "1234";) con la seguridad apropiada los caracteres especiales se anulan añadiendo ' antes y después (ej: ' < ' script ' > ' en lugar de < script >). Sin esa seguridad es posible cambiar el final [admin"; --] con esto quedara (SELECT users FROM accounts WHERE name = "admin"; --" AND pass = "1234";) los 2 guiones comentaran el resto de linea y por tanto no comprobara la contraseña y te dejara entrar como admin. Igual de la misma forma puedes borrar, modificar o añadir lo que quieras.
#3 #3 complementocircunstancial_cc dijo: Si no incluyes WINAPI difícil@complementocircunstancial_cc ... es sql directo. De qué estás hablando. xDDDD
#13 #13 mmiiqquueeii dijo: #10 #11 Con hacer una búsqueda rápida de iSQL o SQL injection en Google te sale lo que es. Explico: Cuando inicias sesión, ej: CR, el servidor debe hacer una consulta a la tabla de user y pass. Al hacer eso la linea es continua (SELECT users FROM accounts WHERE name = "admin" AND pass = "1234";) con la seguridad apropiada los caracteres especiales se anulan añadiendo ' antes y después (ej: ' < ' script ' > ' en lugar de < script >). Sin esa seguridad es posible cambiar el final [admin"; --] con esto quedara (SELECT users FROM accounts WHERE name = "admin"; --" AND pass = "1234";) los 2 guiones comentaran el resto de linea y por tanto no comprobara la contraseña y te dejara entrar como admin. Igual de la misma forma puedes borrar, modificar o añadir lo que quieras.Lo sabia, antes de cada comilla simple hay una barra / pero la que está invertida al lado del uno y encima de tecla tabulación, ves, CR tiene seguridad porque ha eliminado el carácter especial y estoy seguro que si meto una etiqueta Script sin los espacios tampoco se mostrara.
De acuerdo a la tira original, su hija (la hermana de Bobby Tablas) se llama Socorro, Estoy Atrapada En La Fábrica Que Hace Los DNI.
Lo peor que puedes hacer es traducir un chiste en Ingles, pierde todo el sentido y ademas en este caso solo uno que sabe de SQL sabe de que habla. Hace 2 semanas probamos eso en clase con PHP y si, haciendo en el login algo como (Usuario [administrador' --] te deja entrar con el usuario admin sin pone la contraseña y si encima le metes un Drop table o lo que quieras puedes manipularla si no pones el código para limpiar el formulario de loggin. Encontré forma de evitar este ataque (de casualidad) que es primero comprobar el nombre de usuario y luego si existe acceder al SQL comprobando la pass, ($user =$row['usuario'];) Si existe compruebas que la contraseña coincida con el nombre de la misma fila. Está mal pero funciona.
#10 #10 michaeljacksonsfan dijo: no todos sabemos de ordenadores le quería dar positivo, perdón
ese café está lleno de drogas y alcohol pa' poner un nombre tan miserable a su hijo
no todos sabemos de ordenadores
Para eso hay que crear diferentes usuarios de la base de datos, para evitar estos errores.
#5 #5 dsv dijo: #4 @stopbanningme Puestos a hilar fino, los create, drop, alter, rename, truncate forman el DDL (Data Definition Language) que entra dentro de lo que es SQL. Normalmente es buena práctica separar el DDL en los scripts de creación y actualización del modelo de datos y el SQL para poblarlo (puedes necesitar unos datos para pruebas unitarias/funcionales en desarrollo e integración continua, un juego real pero ofuscado (por LOPD) para pruebas de preproducción, y finalmente los datos reales para producción.
Y en todo esto, winapi no pinta nada como bien dices.
@dsv
#6 #6 saelyth dijo: Puede parecer una mierda de cartel pero justo el año pasado bobby tables me enseñó a evitar ataques de injection de SQL mediante python para una empresa para la que tenía que desarollar un software básico.
http://bobby-tables.com/python para quien quiera saber más.@saelyth
podriais hablar en castellano ? : S
Si no incluyes WINAPI difícil
Deja tu comentario
Necesitas tener una cuenta en cuantarazon.com para poder dejar comentarios.¡Registra tu cuenta ahora!
1 ene 2018, 23:39
#4 #4 stopbanningme dijo: #3 @complementocircunstancial_cc ... es sql directo. De qué estás hablando. xDDDD
@stopbanningme Puestos a hilar fino, los create, drop, alter, rename, truncate forman el DDL (Data Definition Language) que entra dentro de lo que es SQL. Normalmente es buena práctica separar el DDL en los scripts de creación y actualización del modelo de datos y el SQL para poblarlo (puedes necesitar unos datos para pruebas unitarias/funcionales en desarrollo e integración continua, un juego real pero ofuscado (por LOPD) para pruebas de preproducción, y finalmente los datos reales para producción.
Y en todo esto, winapi no pinta nada como bien dices.