Autor
|
Tema: ¿Es vulnerable a SQL Injection este código? (Leído 4,383 veces)
|
romerixo
Desconectado
Mensajes: 5
|
Buenas, me gustaría saber si este simple código en el que se validan los datos de un formulario de login sería vulnerable a SQL Injection, y en tal caso, cual serian las sentencias, gracias ^^ <?php $dbhost='xxx'; $dbusername='xxx'; $dbuserpass='xxx'; $dbname='xxx'; // Conectar a la base de datos if ($_POST['username']==null){ echo "No introdujo usuario"; } if ($_POST['username']) { //Comprobacion del envio del nombre de usuario y password $username=$_POST['username']; $password=$_POST['password']; if ($password==NULL) { echo "La password no fue enviada"; }else{ if($data['password']!=$password) { echo "$password\n"; echo "Login incorrecto"; }else{ $_SESSION["k_username"] = $username; echo ("Bienvenido <strong>".$_POST['username']." </strong> ya puedes acceder a las siguientes secciones:<br><center>".'<a href="2684268413971397/addatabase.php">Registrar datos</a>'.""); echo ("<br><br><center><a href='2684268413971397/visualization.php'>Buscador</a>." ); echo ("<br><br><center><a href='2684268413971397/tablasasignacion.php' target='auto_blank'>((TABLAS DE ASIGNACIÓN))</a>"); } } } ?>
|
|
« Última modificación: 25 Septiembre 2014, 22:49 pm por #!drvy »
|
En línea
|
|
|
|
engel lex
|
si no tienes magic quotes montado, si... $username=$_POST['username']; $password=$_POST['password']; if ($password==NULL) { echo "La password no fue enviada"; }else{
si yo por username paso en el input algo tipo ' OR '1'='1 la consulta quedará SELECT username,password FROM usuarios WHERE username = '' OR '1'='1'
lo que retornará todo... y tienes echo "$password\n"; así que no puedes ver el username, pero puedes usar LIMIT para sacar todas las contraseñas por cierto, las contraseñas no se guardan en crudo, eso es pecado se guardan MINIMO en MD5 u otro algoritmo de hash
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
MinusFour
|
si no tienes magic quotes montado, si... $username=$_POST['username']; $password=$_POST['password']; if ($password==NULL) { echo "La password no fue enviada"; }else{
si yo por username paso en el input algo tipo la consulta quedará SELECT username,password FROM usuarios WHERE username = '' OR '1'='1'
lo que retornará todo... y tienes así que no puedes ver el username, pero puedes usar LIMIT para sacar todas las contraseñas por cierto, las contraseñas no se guardan en crudo, eso es pecado se guardan MINIMO en MD5 u otro algoritmo de hash $password no es la contraseña de la base de datos. Pero es cierto que puedes modificar la query.
|
|
|
En línea
|
|
|
|
engel lex
|
rayos ando medio dormido hoy! MinusFour tienes razon, es que vi la linea if($data['password']!=$password) { echo "$password\n";
y vi como si fuera una asignación pero igual retornará un error de mysql, lo que da una pista al hecho que hay una asignacion directa y sospecho que se puede inyectar algo indebido... y no me retracto de las contraseñas en crudo
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
romerixo
Desconectado
Mensajes: 5
|
Wow..rápidas respuestas, ¡Muchas gracias por responder!, Esta web es un pequeño proyectito que me hice hace bastantes años, y ya obsoleto, el código anterior es el que hay para la validación, he intentado algunas sentencias de inyection pero sin éxito, les propongo un pequeño reto si se aburren mucho para confirmar que el código es vulnerable, la url de la web es http://galaxyview.comuf.com/, tienen carta blanca para defacear o sacar el listado de usuarios. Saludos y de nuevo, Gracias por las respuestas...excelente foro!
|
|
|
En línea
|
|
|
|
romerixo
Desconectado
Mensajes: 5
|
mmm...¿Nadie se anima?
|
|
|
En línea
|
|
|
|
Yaldabaot
Desconectado
Mensajes: 186
|
Prueba con expresiones regulares en PHP, lo harás más seguro
|
|
|
En línea
|
Nunca me contestan -_-
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
COMO SABER SI UN FORMULARIO ES VULNERABLE A SQL-INJECTION?
Nivel Web
|
competitivo
|
2
|
7,875
|
30 Octubre 2004, 01:26 am
por el-brujo
|
|
|
Es vulnerable este?
Hacking Mobile
|
#Borracho.-
|
2
|
4,073
|
16 Noviembre 2005, 13:23 pm
por #Borracho.-
|
|
|
Es vulnerable este script?
Nivel Web
|
Banti
|
1
|
2,417
|
23 Julio 2009, 01:51 am
por Nakp
|
|
|
Youtube.com Vulnerable to HTML Code Injection
Nivel Web
|
TinKode
|
5
|
3,889
|
5 Julio 2010, 10:41 am
por TinKode
|
|
|
Google.com vulnerable to XSS (HTML Code Injection)
Bugs y Exploits
|
TinKode
|
9
|
6,559
|
3 Diciembre 2010, 23:33 pm
por TinKode
|
|