AYUDA POR FAVOR! Permitir subir solo imagenes al hosting

scabrera Seguir

Delta
Verificación en dos pasos desactivada
Desde
7 Ago 2011
Mensajes
582
Estoy pasando un muy mal momento, me suben archivos de diferentes phishings a mi hosting, los borro a mano pero vuelven a aparecer y es una cadena continua que estoy queriendo cortar.

¿Hay alguna manera, por ejemplo desde .httaccess para bloquear en todo mi sitio la posibilidad de subir archivos que no seas imágenes?

- - - Actualizado - - -

Ya busqué shell scripts por todo el sitio y quité todo lo que encontré, pero siguen apareciendo, me tienen los testículos acalambrados.
 

aperpen

Gamma
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
1 May 2014
Mensajes
235
Puedes hacer que solo se permitan subir archivos con las extensiones que tu permitas así:
PHP:
/**/
$name = 'nombredearchivo.png';
$extensiones_permitidas = array('png', 'jpeg', 'jpg', 'gif');
/**/

$name_array = explode('.', $name);
/* Probablemente con uno de los dos sería suficiente, pero
	no está de más hacer una doble comprobación */
$extension = end($name_array);
$extension2 = pathinfo($name, PATHINFO_EXTENSION);

if(!in_array($extension, $extensiones_permitidas) || $extension != $extension2)
	die('Tipo de archivo no permitido!');

Después puedes, como medida de seguridad extra, comprobar que sea una imagen usando getimagesize:
PHP:
if(!getimagesize($rutaarchivo)){
unlink($rutaarchivo);
die('Archivo inválido!');
}

Tambien como medida de seguridad extra puedes añadir este código en un archivo .htaccess en el directorio en el que guardas las imagenes:
Insertar CODE, HTML o PHP:
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi .dat .html
RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]

Con esto impides la ejecución de archivos html, php etc. en ese modo aunque suban el archivo no podrán abrirlo.
 

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
Edito y borro
No me había dado cuenta que te había contestado aperpen, ademas de una forma mas amplia.
Un formulario que suba imágenes tienes que tener cuidado como tratas los datos después de subidos, es un coladero de ataques LFI
 
Última edición:

ramonjosegn

Sigma
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
14 Feb 2010
Mensajes
69.432
Hola [MENTION=12967]scabrera[/MENTION]

Puede usar algún plugin de seguridad Wordfence te permite bloquear accesos de forma agresiva (eliges la opción "estoy bajo un ataque"), también puedes informar al proveedor de hosting para que ponga esas ips en lista negra, también puedes usar BBQ (aunque es algo básico pero tiene opción PRO) o también Simple Firewall que tiene muchas opciones (aunque lleva un rato configurarlo).

Recomendable que cambies todas las contraseñas (correo, ftp y demás).
 

scabrera

Delta
Verificación en dos pasos desactivada
Desde
7 Ago 2011
Mensajes
582
En caso de que haya alguan shell metida por ahí q se me escapó, ¿esto serviría?

RewriteCond %{REQUEST_URI} ^/uploads [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|gif)$ [NC]
RewriteRule .* - [F,L]

- - - Actualizado - - -

Puedes hacer que solo se permitan subir archivos con las extensiones que tu permitas así:
PHP:
/**/
$name = 'nombredearchivo.png';
$extensiones_permitidas = array('png', 'jpeg', 'jpg', 'gif');
/**/

$name_array = explode('.', $name);
/* Probablemente con uno de los dos sería suficiente, pero
	no está de más hacer una doble comprobación */
$extension = end($name_array);
$extension2 = pathinfo($name, PATHINFO_EXTENSION);

if(!in_array($extension, $extensiones_permitidas) || $extension != $extension2)
	die('Tipo de archivo no permitido!');

Después puedes, como medida de seguridad extra, comprobar que sea una imagen usando getimagesize:
PHP:
if(!getimagesize($rutaarchivo)){
unlink($rutaarchivo);
die('Archivo inválido!');
}

Tambien como medida de seguridad extra puedes añadir este código en un archivo .htaccess en el directorio en el que guardas las imagenes:
Insertar CODE, HTML o PHP:
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi .dat .html
RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]

Con esto impides la ejecución de archivos html, php etc. en ese modo aunque suban el archivo no podrán abrirlo.

Excelente respuesta! Voy a probar! Muchas gracias! :encouragement:
 

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
Es raro ver por aqui gente dando las gracias.

No había entendido bien la pregunta soy un poco corto.
Puedes mirar esto, solo te podrían subir imágenes (en este ejemplo jpg).
Insertar CODE, HTML o PHP:
if (isset($_FILES['archivo']['tmp_name'])) {
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime = finfo_file($finfo, $_FILES['archivo']['tmp_name']);
    if ($mime == 'image/jpeg) {
echo "es una imagen jpg";
    }else{
//lo que quieras
}
    finfo_close($finfo);
}
 
Última edición:

scabrera

Delta
Verificación en dos pasos desactivada
Desde
7 Ago 2011
Mensajes
582
Es raro ver por aqui gente dando las gracias.

No había entendido bien la pregunta soy un poco corto.
Puedes mirar esto, solo te podrían subir imágenes (en este ejemplo jpg).

if (isset($_FILES['archivo']['tmp_name'])) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES['archivo']['tmp_name']);
if ($mime == 'image/jpeg) {
echo "imagen jpg";
}else{
//lo que quieras
}
finfo_close($finfo);
}

Ahora voy a revisar bien el código, no me dan las manos para borrar archivos del hosting, pero creo q eso lo tengo de manera muy similar, en mi botón de upload, pero necesitaría bloquear todo desde más arriba ya que no es desde mi botón de upload desde dónde acceden, con el cambio en .httaccess creo q voy a complicarselas bastante.

Gracias por la info, les cuento en unas horas como va todo. Estoy intentando contactar a varios dueños de tarjetas de crédito robadas que encontré en varios .txt de mi hosting, a los 15 años me hubiese parecido simpático comprarme RP en el LoL, ahora me da empatía pobre gente.
 

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
Ahora voy a revisar bien el código, no me dan las manos para borrar archivos del hosting, pero creo q eso lo tengo de manera muy similar, en mi botón de upload, pero necesitaría bloquear todo desde más arriba ya que no es desde mi botón de upload desde dónde acceden, con el cambio en .httaccess creo q voy a complicarselas bastante.

Gracias por la info, les cuento en unas horas como va todo. Estoy intentando contactar a varios dueños de tarjetas de crédito robadas que encontré en varios .txt de mi hosting, a los 15 años me hubiese parecido simpático comprarme RP en el LoL, ahora me da empatía pobre gente.


Estos códigos es para que solo suban imágenes al servidor, eso no quiere decir que las imágenes no tengan código malicioso.
 

scabrera

Delta
Verificación en dos pasos desactivada
Desde
7 Ago 2011
Mensajes
582
Estos códigos es para que solo suban imágenes al servidor, eso no quiere decir que las imágenes no tengan código malicioso.

Lo sé, pero si subes código php en un archivo con extensión .jpg el browser no interpreta código php a menos q el archivo tenga esa extensión, igual siempre se puede verificar tanto con imagick como con getimagesize.

El problema es que mi sitio está lleno de código por todos lados, y aunque borré todos los archivos q no correspondían a mi sitio puede que hayan modificado algún archivo existente (ya encontré 1 modificado), ahora lo que estoy haciendo es revisar diferencias de tamaños en archivos que no cambian de tamaño, y en los que cambian de tamaño los estoy revisando a mano pero son muchos, lo que me lleva a otra pregunta, ¿alguna línea de código que si o si tengan todas las shells? Así busco con textcrawler en todos los archivos al mismo tiempo en busca de esa/s línea/s
 

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
Lo sé, pero si subes código php en un archivo con extensión .jpg el browser no interpreta código php a menos q el archivo tenga esa extensión, igual siempre se puede verificar tanto con imagick como con getimagesize.

El problema es que mi sitio está lleno de código por todos lados, y aunque borré todos los archivos q no correspondían a mi sitio puede que hayan modificado algún archivo existente (ya encontré 1 modificado), ahora lo que estoy haciendo es revisar diferencias de tamaños en archivos que no cambian de tamaño, y en los que cambian de tamaño los estoy revisando a mano pero son muchos, lo que me lleva a otra pregunta, ¿alguna línea de código que si o si tengan todas las shells? Así busco con textcrawler en todos los archivos al mismo tiempo en busca de esa/s línea/s

No conozco textcrawler (se para que sirve), pero hacer un pequeño script en bash en linux es fácil con el comando "grep"
 
Última edición:

scabrera

Delta
Verificación en dos pasos desactivada
Desde
7 Ago 2011
Mensajes
582
No conozco textcrawler, pero hacer un pequeño script en bash en linux es fácil con el comando "grep"

Estoy en Windows, y es un shared hosting sin acceso, textcrawler me ofrecer las mismas funciones q grep en linux, el tema es que líneas perjudiciales buscar

- - - Actualizado - - -

Uh, no puedo creer lo bolúdo que soy......... Ya sé cual es el problema :topsy_turvy: :rolleyes:, y efectivametne la solución la tiene [MENTION=108344]aperpen[/MENTION]
 
Última edición:

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
Si tu página tiene mucho código, creo el script es "mucha paciencia".
Depende como sea todo el lio que tienes puedes fijarte en la fecha de modificación de los archivos.
 

scabrera

Delta
Verificación en dos pasos desactivada
Desde
7 Ago 2011
Mensajes
582
Ya sé cual es el problema, ahí le mandé un mensaje a [MENTION=108344]aperpen[/MENTION] a ver si me da una manito :encouragement:
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba