Inyeccion sql (ayuda) gracias!

Iniciado por 0yerss, Agosto 01, 2019, 12:11:43 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 01, 2019, 12:11:43 AM Ultima modificación: Agosto 01, 2019, 12:42:49 AM por Denisse
 Buenos días, tardes, noches agradecería que me pudieran echar una mano con esto,
estoy practicando a hacer inyecciones sql en una página web vulnerable que cree lo que pasa es
que paso un parámetro por via  "$_GET" llamado detalle.php?id_noticia=2
y al momento de ponerle una comilla simple " ' " me aparece el siguiente error:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\php_es\inyeccionsql3\detalle.php on line 13
hasta ahí bien, pero lo que pasa es que no me aparece ningún mensaje del tipo:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax etc...
y cuando paso otro comando via $_GET como cast(version() as int)
para provocar un error en mysql y que me devuelva la version de la base de datos,
no me aparece nada sólo sigue mostrando este error:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\php_es\inyeccionsql3\detalle.php on line 13
y nada más, espero y me puedan echar una mano el código es el siguiente:
Código: php
<?php 

require_once("conexion.php");

$sql = "select * from noticias where id_noticias = ".$_GET["id_noticia"]."";

$res = mysqli_query($con, $sql);

?>

<?php

if($reg = mysqli_fetch_array($res))
{

?>

<html>

<head>
<title><?php echo $reg["titulo"]; ?></title>
</head>

<body>

<!-- Aqui se muestran las noticias de la consulta -->

<table width="500" align="center">

<tr style="background-color:#f0f0f0">
<td width="500" align="center" valign="top">
<h3><?php echo $reg["titulo"]; ?></h3>
</td>

</tr>

<tr style="background-color:#f0f0f0">

<td width="500" align="center" valign="top">
<div align="justify">
<?php echo $reg["detalle"]; ?>
</div>
</td>

</tr>


<?php
}
//Aqui termina la llave del if
?>

</body>

</html>


La base de datos contiene una tabla llamada "noticias" y tiene unos campos llamados: id_noticias int, titulo varchar(100), detalle text y dentro de la tabla tengo 2 registros así que si ingreso en $_GET,  detalle.php?id_noticia=2 me muestra el 2 registro de la tabla.

Estoy usando XAMPP para windows version 7.2

Gracias!!!

Agosto 01, 2019, 12:37:22 AM #1 Ultima modificación: Agosto 01, 2019, 12:40:22 AM por Kirari
Buenas noches compañero! Pueden ser varios problemas, que algunas de las variables esté vacía o que no contenga datos provocando algún tipo de error en la consulta, o también puede ser que al momento de que usas el array, no le estas asociando el indice cadena (array asociativo). Lo que quiero decir con este último, es que le tiene que señalar el key del array, como lo siguiente:

Código: php
$reg = mysqli_fetch_array($res, MYSQLI_ASSOC)


Modificando esa parte del código, ahora podrá utilizar el array correctamente (reg["titulo"]). Si hubiera mediante un indice numérico, entonces sería algo como esto:

Código: php
$reg = mysqli_fetch_array($res, MYSQLI_NUM)


Entonces, al momento de utilizar el array, deberías usarlo así: reg[0], reg[1], etc...

Si tienes problemas, no dudes en preguntar nuevamente. Espero que te sirva, saludos!

Atentamente,
Kirari-