[SOLUCIONADO] Problema con PHP y Postgresql

  • 4 Respuestas
  • 3587 Vistas

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

Desconectado nexusz

  • *
  • Underc0der
  • Mensajes: 50
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

[SOLUCIONADO] Problema con PHP y Postgresql

  • en: Noviembre 23, 2016, 11:06:00 pm
Buenas tengo un problema con php y postgresql, estoy haciendo un login vulnerable a sql injection para practicar y me topo con estos errores:
Código: You are not allowed to view links. Register or Login
Warning: pg_exec(): Query failed: ERROR: no existe la relación «productos» LINE 1: SELECT * FROM Productos WHERE Nombre='admin' and Contracena=... ^ in C:\xampp\htdocs\conpostgres.php on line 17

Warning: pg_numrows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\conpostgres.php on line 24
el codigo de el login es el siguiente:

este el login.php
Código: You are not allowed to view links. Register or Login
<?php 
session_start
();

include 
'conpostgres.php';
// si se ha rellenado anteriormente el formulario ,comprobar los datos

if(isset($_POST['nombre'])){
//sentencia sql a ejecutar
$sql="SELECT * FROM Productos WHERE Nombre='".$_POST["nombre"]."' and Contracena='".$_POST["pwd"]."'";

$resultado=ejecutar_SQL($conexion,$sql);

//si hay filas,los datos de accseso eran correctos
if(numero_filas($resultado)!=0){
//obtener los datos de l usuario logado
$fila=$fila($resultado,0);
// almacenar su ID en los datos de la sesion
$_SESSION['usuario']=$fila['id'];

// dar la bienvenida
echo "<h3>Login OK</h3>
[email protected],"
.$fila['desc']."<br>
Pulse <a href=producto.php>aqu&iacute;</a> para continuar."
;
}else {
echo "<h3>Login fallido</h3>";
}


}
// si no se ha iniciado sesion,mostrar un formulario de logon

if(!isset($_SESSION['usuario'])){
print '<form method="POST" action="login.php">
<table border="1">
<tr><td colspan="2">Introduzca sus datos de acceso</td></tr>
<tr><td>Nombre:&nbsp;</td><td><input type="text" name="nombre" id="nombre"></td></tr>
<tr><td>Clave:&nbsp;</td><td><input type="password" name="pwd" id="pwd"></td></tr>
</table>
<input type="submit" value="Enviar">
</form>'
;
}
?>


y este es para la conexion:
Código: You are not allowed to view links. Register or Login
<?php
// abrir conexion con la base de datos

function conectar($host,$db,$usuario,$contraceña){
return pg_connect("host=$host dbname=$db user=$usuario password=$contraceña");
}


// cerrar conexion
function cerrar_conexion($conexion){
pg_close($conexion);
}

// ejecutar una consulta sql sobre abre unaconexion

function ejecutar_SQL($conexion,$cadena){
return 
pg_exec($conexion,$cadena);
}


//obtner numeros de filas de u nresultado

function numero_filas($resultado){
return pg_numrows($resultado);
}

// obtiene la fila numero $i de un resultado
// para obtener un campo de usa la sintaxis $fila_obtenida['nmbre de la columna']

function fila($resultado,$i){
return pg_fetch_array($resultado,$i);

}

$conexion=conectar('localhost','postgres','postgres','123456');

?>

que puede ser? porque cree la base de datos bien con las tablas correctas,uso xampp

un saludo y gracias
« Última modificación: Noviembre 26, 2016, 12:11:21 am por Gabriela »

Desconectado arthusu

  • *
  • Ex-Staff
  • *****
  • Mensajes: 551
  • Actividad:
    0%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG

Re:Problema con PHP y Postgresql

  • en: Noviembre 24, 2016, 03:18:08 am
Y si existe la tabla productos, si puedes pasar una captura de tu base de datos por fa men Saludos!
Pentest - Hacking & Security Services

Contact me: [email protected]

Desconectado Stiuvert

  • *
  • Ex-Staff
  • *****
  • Mensajes: 2661
  • Actividad:
    0%
  • Reputación 15
  • Twitter: @Stiuvert
    • Ver Perfil

Re:Problema con PHP y Postgresql

  • en: Noviembre 24, 2016, 04:24:48 am
Lista las tablas de la base de datos como dice arthusu con "\l". Y realiza la consulta más corta para saber de donde viene el problema, por ejemplo en el WHERE utiliza sola "nombre" (y escríbelo todo en minúscula)

Saludos
« Última modificación: Noviembre 24, 2016, 04:27:09 am por Stiuvert »

Desconectado marcoam

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Problema con PHP y Postgresql

  • en: Noviembre 24, 2016, 12:44:03 pm
Hola nexusz, ese error suele ocurrir cuando no existe la tabla  a la que intentas acceder. Además, he visto que tu variable $sql crea una cadena con la consulta pero te has olvidad el punto y coma al final. Observa que tu punto y coma es de la declaración de php, pero te falta el punto y coma después de la última comilla simple '

Prueba y si no funciona te recomendaría ver si de verdad existe la tabla. En postgresql puedes ver las tablas con \d (tienes que estar conectado a la base de datos) y las bases de datos con \l.

Saludos ;)

Desconectado nexusz

  • *
  • Underc0der
  • Mensajes: 50
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Problema con PHP y Postgresql

  • en: Noviembre 24, 2016, 08:06:46 pm
You are not allowed to view links. Register or Login
Y si existe la tabla productos, si puedes pasar una captura de tu base de datos por fa men Saludos!
ahi esta la imagen de las tablasy la base de datos




You are not allowed to view links. Register or Login
Lista las tablas de la base de datos como dice arthusu con "\l". Y realiza la consulta más corta para saber de donde viene el problema, por ejemplo en el WHERE utiliza sola "nombre" (y escríbelo todo en minúscula)

Saludos
ya probe en dejar solo el nombre y tambien probe en dejar solo la contraceña y me  sigue diciendo que no detecta la tabla

cambie de version a  postgresql 9.4 y no me tira mas el error ese, me tira otro es el siguiente:
Código: You are not allowed to view links. Register or Login
Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? in C:\xampp\htdocs\conpostgres.php on line 5
You are not allowed to view links. Register or Login
cambie de version a  postgresql 9.4 y no me tira mas el error ese, me tira otro es el siguiente:
Código: You are not allowed to view links. Register or Login
Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? in C:\xampp\htdocs\conpostgres.php on line 5
ya esta todo solucionado, le agregue el port a la conexion y ya me detecta las tablas y todo con esta version de postgres
« Última modificación: Noviembre 26, 2016, 05:29:09 am por Stiuvert »