Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Pazador

#51
Nivel Web / Re: Duda con LFI
29 Julio 2009, 01:39 AM
pero si intento subir un archivo php (antes de hacer este post fue lo primero que intente hacer) no se podria subir ya que el filtro no permitira subir archivos que no sean imagenes  :-\
#52
PHP / Re: error con mysql_fetch_array
27 Julio 2009, 03:34 AM
Cita de: & eDu & en 26 Julio 2009, 13:54 PM
Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
Código (php) [Seleccionar]
public function consulta($consulta)
{
$this->resultado = mysql_query($consulta,$this->descriptor);
}
public function extraer_registro()
{
if ($fila = mysql_fetch_array($this->resultado,MYSQL_ASSOC)) {
return $fila;
} else {
return false;
}
}

bueno, el problema es que al intentar llamar el resultado de una consulta me da este error:

Citar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/np/www/SQL/index.php on line 29

alguna ayuda?
Hay poco codigo y no logro entender lo que se saca de la DB, pero tu no puedes devolver $fila , se supone que es una array, deberás debolver
Código (php) [Seleccionar]
return $fila['loquesea'];

Creo yo que aqui ya dijeron la respuesta  ;D
y procura usar mysql_fetch_assoc, genera un array mas pequeño, es bastante util si queremos reducir consumo de recursos
#53
Nivel Web / Re: Duda con LFI
27 Julio 2009, 03:02 AM
ah ok deacuerdo, todo quedo muy claro y gracias por responder... entonces no es posible burlar ese filtro?? supongo que no  ;D
#54
Nivel Web / Duda con LFI
26 Julio 2009, 00:10 AM
Hola a todos, hice un script sencillo de prueba que sirve para subir imagenes al servidor que funciona perfectamente, supuestamente puse un "filtro" para que solamente se pudieran subir imagenes de extensiones mas usuales, el supuesto filtro es este:

if($tipo=="image/gif" || $tipo=="image/jpg" || $tipo=="image/jpeg" || $tipo=="image/bmp" || $tipo=="image/png"){

lei acerca de esta la vulnerabilidad de este filtro, que permite subir archivos con codigo php y cambiandolo de extension a jpg, pues.. eso intento quiero probar eso pero no me sale nada.

Para probar esto cree un archivo jpg al que llame "fake.jpg" pero antes le puse algo como esto:

<?php 
$bug
=$_GET['bug'];
include(
"$bug");
?>


ahora que subi la falsa imagen y tengo la url directa, intento hacer lo que llaman LFI pero solo me sale esto:



Hay algo que me falto hacer o hice mal??? se supone que deberia mostrar el codigo php o contenido del archivo txt

PD: las imagenes reales jpg si las muestra correctamente
#55
[quote author=nsigned link=topic=259745.msg1262179#msg1262179 date=1246386595]
Funcion anti Inyecciones SQL incluida en SMF, publicada por дٳŦ*

Código (php) [Seleccionar]

<?php
function addslashes__recursive($var){
if (!
is_array($var))
return 
addslashes($var);
$new_var = array();
foreach (
$var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return 
$new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>



Saludos  ;)
[/quote]

Estoy aprendiendo PHP y note que esa funcion solo filtra los dos tipos de comillas unicamente en comparacion de mysql_real_escape_string que filtra: \x00, \n, \r, \, ', " y \x1a y evita una inyeccion: Lei esto

Yo por lo general uso esta funcion que encontre en la red (para mi la mejor :laugh:)
Código (php) [Seleccionar]
<?php
// Aplicar comillas sobre la variable para hacerla segura
function comillas_inteligentes($valor)
{
   
// Retirar las barras
  
if(get_magic_quotes_gpc()){
       
$valor stripslashes($valor);
   }

   
// Colocar comillas si no es entero
   
if (!is_numeric($valor)) {
       
$valor "'" mysql_real_escape_string($valor) . "'";
   }
   return 
$valor;
}

// Conexion
$enlace mysql_connect('mysql_host''mysql_usuario''mysql_contrasenya')
   OR die(
mysql_error());

// Realizar una consulta segura
$consulta sprintf("SELECT * FROM usuarios WHERE usuario=%s AND password=%s",
           
comillas_inteligentes($_POST['username']),
           
comillas_inteligentes($_POST['password']));

mysql_query($consulta);
?>

pero antes filtro los datos con htmlentities  :P


PD: es curioso y/o algo raro que un espacio " " juegue un papel importante aqui porque luego de escribir:


e intente previsualizar el post me muestre:


pero cuando escribo:

recien previsualiza el post  :silbar:
#56
quiero estudiar tu script pero no puedo descargarlo de rapidshare porque no tengo premium, me muestra esto:

CitarError

This file is neither allocated to a Premium Account, or a Collector's Account, and can therefore only be downloaded 10 times.

This limit is reached.

To download this file, the uploader either needs to transfer this file into his/her Collector's Account, or upload the file again. The file can later be moved to a Collector's Account. The uploader just needs to click the delete link of the file to get further information.

podrias subirlo a mediafire u otro servidor libre??  :-[
#57
Cita de: Erik# en 16 Junio 2009, 21:28 PM
Código (php) [Seleccionar]
$query = mysql_query("SELECT * FROM `users` WHERE usuario='$_POST[usuario]'");
$datos = mysql_fetch_array($query);
if($datos['password'] == $_POST['contraseña']){
// contenido
}else{
// contenido erroneo
}


Prueba haber :)

gracias por responder, intente hacerlo como dices pero tengo el mismo problema  :-\ se que deberia funcionar pero no se porque no funciona  :-(
#58
Hola a todos soy nuevo y a la vez aprendiz en PHP  :-[

intento practicar haciendo un sistema con logueo de usuarios, hice casi todo pero el problema esque no se como comprobar el password de un usuario hacia la DB, mi script es el sgte:
Código (php) [Seleccionar]
<html>
<head>
<title>usuarios :D</title>
</head>
<body><div align="center">
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
Nombre: <input type="text" name="nombre" /><br />
Clave: <input type="password" name="pass" /><br />
<input type="submit" value="Enviar" /> <input type="reset" value="Cancelar" />
</form>
<?php 
extract
($_REQUEST);
if(isset(
$nombre) && isset($pass)){
 
//conectamos
 
$cn=mysql_connect("localhost","root","123")or die("No se puede conectar a la DB");
 
mysql_select_db("libro",$cn)or die("No se encuentra la DB");
  
 if(
$nombre==mysql_query("SELECT usuario FROM users WHERE usuario='$nombre'") && $pass==mysql_query("SELECT usuario FROM users WHERE pass='$pass'")){
 
session_start(); 
 
$_SESSION['si'] ='entraste';
 
header("Location: adm_mensajes.php");
 }
 else{
 echo 
"<font color=red>Usuario o Clave incorrecto</font>";
 }
}
?>

</div>
</body>
</html>


lo que me falta es comprobar el nombre y el password que sean correctos a los de la bd del usuario, intente hacer esto porque fue lo primero que se me ocurrio   :-(
Código (php) [Seleccionar]
if($nombre==mysql_query("SELECT usuario FROM users WHERE usuario='$nombre'") && $pass==mysql_query("SELECT usuario FROM users WHERE pass='$pass'")) y al parecer no funciona alguien podria darme una mano  :laugh:
por si les sirve de algo mis tablas son estas  :P
Código (sql) [Seleccionar]
create table users(
id int(11) auto_increment primary key not null,
usuario char(30) not null,
pass char(20) not null
);

hasta aqui termina mi primera pregunta  :rolleyes:

la segunda duda que tengo y no tengo idea de como se hace... resulta que quiero editar los mensajes de un libro de visitas que intento hacer, logre poder editar dichos mensajes creando una interfaz grafica de un admin pero mi gran problema esque yo quiero que.. cada vez que quiera editar un mensaje, el mensaje antiguo se muestre en los campos de texto del formulario para editarlo osea como cuando editas un post, el texto sigue ahi y listo para corregirlo, logre poder hacer que se editen los mensajes pero, cuando se edita no aparece el mensaje que estaba  :-(  mi codigo es este:

Código (php) [Seleccionar]
<?php 
session_start
();
if(!isset(
$_SESSION['si']) || $_SESSION['si']!='entraste'){
header("Location: admin.php");
exit();
}
?>

<html>
<head>
<title>editor del admin :D</title>
</head>

<body>
<?php 
$cn
=mysql_connect("localhost","root","123") or die ("No se pudo conectar a la DB");
mysql_select_db("libro",$cn)or die(mysql_error());

extract($_REQUEST);
if (isset(
$action) && $action="editar"){
$modifica=mysql_query("update mensajes set nombre='$nombre',tema='$tema',mensaje='$mensaje' where id='$id'");
}
echo 
"<a href=\"mensajes.php\">Regresar</a>";
?>

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
Nombre: <input type="text" name="nombre" /><br />
Tema: <input type="text" name="tema" /><br />
Mensaje: <br /><textarea name="mensaje" cols="30" rows="5"></textarea><br />
<input type="submit" value="Enviar" /> <input type="reset" />
</form>

</body>
</html>

aqui si estoy completamente seguro que logre que edite los mensajes de la peor manera que se pueda hacer  :xD recuerden que estoy aprendiendo PHP  :laugh:
espero respuestas y mejor aun... ayuda  ;-)