PHP - Error de inyección de SQL

 
Vista:

Error de inyección de SQL

Publicado por John (3 intervenciones) el 20/03/2023 04:54:57
Buen día amigos, vengo para solicitar su ayuda con un ejercicio de prueba técnica para una oferta laboral.
Me envian esto y no se como resolverlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
A continuación verá el código fuente de esta página
Éste contiene una inyección SQL. Aproveche esta vulnerabilidad para avanzar a la siguiente pregunta
 
 
<?php
 
if ( isset($_GET['uid']) ) {
 
    $user_id    = $_GET['uid'];
    $query      = "SELECT * FROM usuarios WHERE id = $user_id LIMIT 1";
    $result     = mysql_query($query) or die('No!');
 
    $row        = mysql_fetch_array($result);
 
    if ( $row['rol'] == 'admin' ) {
        advance_level();
    }
 
}
 
if ( isset($_GET['nombre']) ) {
    $nombre = strip_tags($_GET['nombre']);
    echo "<h1>Hola $nombre</h1>";
}
 
?>
 
 
<h1>A continuación verá el código fuente de esta página</h1>
<p>Éste contiene una inyección SQL.  Aproveche esta vulnerabilidad para avanzar a la siguiente pregunta</p>
 
<pre>
    <code>
        <?php echo file_get_contents(__FILE__); ?>
    </code>
</pre>

Aquí la cuestión es saber que valor debe tener uid para poder pasar el IF.

Gracias por la ayuda de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error de inyección de SQL

Publicado por John (3 intervenciones) el 20/03/2023 06:45:04
Lo único que se me ha ocurrido es pasar por url el valor, es decir:

https://dmininio.com/?uid=1

Bajo la premisa que UID es la variable GET que pide el codigo para hacer la consulta y el valor = 1 suponiendo que en la base de datos sea el registro número 1.

Sigue sin funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error de inyección de SQL

Publicado por Jefferson (203 intervenciones) el 20/03/2023 20:13:31
Hola y en esa empresa necesitan hacker ??

Quizás la pregunta que debieron hacerte sería.

Cómo evitas un ataque de inyección en MySql.!

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error de inyección de SQL

Publicado por El Duro (1 intervención) el 20/03/2023 20:21:39
NO debes hacer eso...

Primero porque pasar valores por url es muy peligroso, cualquiera podría verlo e interceptarlo.

Segundo si es que es estrictamente necesario pasarlo por get y no por post, como mínimo debería encriptarse pero usando un sistema de cifrado mediante clave generada mediante una cadena larga, a fin de darle mayor seguridad.

Pasar ID de estructuras de BD por url, es desnudar como residen los datos, en el corazón de un sistema que es la base de datos, y con ello te pueden hacer daños incalculables...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error de inyección de SQL

Publicado por Alejandro (839 intervenciones) el 21/03/2023 16:40:14
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Deberías prepararte con los conocimientos básicos antes de postularte.
1
2
3
$user_id = "'' or rol='admin' ";
$query = "SELECT * FROM usuarios WHERE id = $user_id LIMIT 1";
// SELECT * FROM usuarios WHERE id = '' or rol='admin'  LIMIT 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error de inyección de SQL

Publicado por John (3 intervenciones) el 21/03/2023 17:27:00
Agradezco tu respuesta, pero por favor, tratemos de mantener un tono respetuoso y amable en nuestra comunicación. A veces, las palabras pueden ser malinterpretadas o percibidas como groseras, incluso si esa no era nuestra intención. Por lo tanto, ser conscientes de nuestra elección de palabras y tono es importante para una comunicación efectiva y cordial. Además, debemos recordar que cada persona tiene su propia experiencia y perspectiva, y es importante respetarlas y ser empáticos. Gracias por tu comprensión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error de inyección de SQL

Publicado por Kathyu (905 intervenciones) el 21/03/2023 18:38:35
No tomes a mal mi comentario, pero te dio un consejo directo, lo que se llama una critica constructiva. Muchos empleadores "rastrean" paginas como esta, stackoverflow o FDW cuando están en contratación. Incluso yo lo hice cuando conforme un equipo de programadores para un proyecto y quería ver si sabían o no del tema o si habían buscado "ayudas".

Ahora, es aun peor decir que tu problema es para poder pasar una prueba de trabajo, más que una prueba escolar, comprendes??

Por lo demás la respuesta que @Alejandro te dio es la idónea, pueda que al final te contraten por el Vamos que hay que tomarse este tipo de cosas con buena cara y aprender de ello. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar