Translated ['pentesting-web/file-upload/README.md'] to es

This commit is contained in:
Translator 2023-07-19 11:10:59 +00:00
parent 1ff1c872fb
commit 7cd088d05d

View file

@ -61,7 +61,7 @@ Otras extensiones útiles:
* _file.php%00.png%00.jpg_
6. Intenta poner la **extensión de ejecución antes de la extensión válida** y reza para que el servidor esté mal configurado. (útil para explotar configuraciones incorrectas de Apache donde cualquier cosa con la extensión **.php**, pero **no necesariamente terminando en .php**, ejecutará código):
* _ej: file.php.png_
7. Usa **NTFS alternate data stream (ADS)** en **Windows**. En este caso, se insertará un carácter de dos puntos ":" después de una extensión prohibida y antes de una permitida. Como resultado, se creará un **archivo vacío con la extensión prohibida** en el servidor (por ejemplo, "file.asax:.jpg"). Este archivo podría ser editado más tarde utilizando otras técnicas como el uso de su nombre de archivo corto. El patrón "**::$data**" también se puede usar para crear archivos no vacíos. Por lo tanto, añadir un carácter de punto después de este patrón también puede ser útil para saltar restricciones adicionales (por ejemplo, "file.asp::$data.")
7. Usa **NTFS alternate data stream (ADS)** en **Windows**. En este caso, se insertará un carácter de dos puntos ":" después de una extensión prohibida y antes de una permitida. Como resultado, se creará un **archivo vacío con la extensión prohibida** en el servidor (por ejemplo, "file.asax:.jpg"). Este archivo podría editarse más tarde utilizando otras técnicas como el uso de su nombre de archivo corto. El patrón "**::$data**" también se puede usar para crear archivos no vacíos. Por lo tanto, añadir un carácter de punto después de este patrón también puede ser útil para saltar restricciones adicionales (por ejemplo, "file.asp::$data.")
8. Intenta romper los límites del nombre de archivo. La extensión válida se corta y se deja el PHP malicioso. AAA<--SNIP-->AAA.php
```
@ -94,7 +94,7 @@ AAA<--SNIP 232 A-->AAA.php.png
### Otros trucos para comprobar
* Encontrar una vulnerabilidad para **renombrar** el archivo ya subido (para cambiar la extensión).
* Encontrar una vulnerabilidad para **renombrar** el archivo ya subido (cambiar la extensión).
* Encontrar una vulnerabilidad de **Inclusión de Archivos Locales** para ejecutar la puerta trasera.
* **Posible divulgación de información**:
1. Subir **varias veces** (y al **mismo tiempo**) el **mismo archivo** con el **mismo nombre**
@ -144,12 +144,12 @@ characters = @(call://uwsgi_func)
```
Cuando se **analice** el archivo de **configuración**, se **ejecutará** la **carga útil**. Tenga en cuenta que para que se analice la configuración, el **proceso debe reiniciarse** (¿crash? ¿DoS?) o el archivo se **recargará automáticamente** (una opción que podría estar en uso indica los segundos para recargar el archivo si se encuentra un cambio).
**Nota importante:** El análisis del archivo de configuración de uWSGI es laxo. La carga útil anterior puede estar incrustada dentro de un archivo binario (por ejemplo, imagen, pdf, ...).
**Nota importante:** El análisis del archivo de configuración de uWSGI es flexible. La carga útil anterior puede estar incrustada dentro de un archivo binario (por ejemplo, imagen, pdf, ...).
## **Truco de carga de archivos/SSRF con wget**
En algunas ocasiones, puede suceder que un servidor esté utilizando **`wget`** para **descargar archivos** y se pueda **indicar** la **URL**. En estos casos, es posible que el código esté verificando que la extensión de los archivos descargados esté dentro de una lista blanca para asegurarse de que solo se descarguen archivos permitidos. Sin embargo, **esta verificación se puede eludir**.\
La **longitud máxima** de un **nombre de archivo** en **Linux** es de **255**, sin embargo, `wget` trunca los nombres de archivo a **236** caracteres. Puede **descargar un archivo llamado "A"\*232+".php"+".gif"**, este nombre de archivo **eludirá** la **verificación** (como en este ejemplo **".gif"** es una extensión **válida**), pero `wget` **renombrará** el archivo a **"A"\*232+".php"**.
La **longitud máxima** de un **nombre de archivo** en **Linux** es de **255**, sin embargo, **wget** trunca los nombres de archivo a **236** caracteres. Puede **descargar un archivo llamado "A"\*232+".php"+".gif"**, este nombre de archivo **eludirá** la **verificación** (como en este ejemplo **".gif"** es una extensión **válida**) pero `wget` **renombrará** el archivo a **"A"\*232+".php"**.
```bash
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
@ -180,7 +180,8 @@ Ten en cuenta que **otra opción** que puedes considerar para evadir esta verifi
* [https://github.com/modzero/mod0BurpUploadScanner](https://github.com/modzero/mod0BurpUploadScanner)
* [https://github.com/almandin/fuxploider](https://github.com/almandin/fuxploider)
* [https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)
## Herramientas
* [Upload Bypass](https://github.com/sAjibuu/Upload_Bypass) es una poderosa herramienta diseñada para ayudar a los Pentesters y Cazadores de Bugs en la prueba de mecanismos de carga de archivos. Utiliza varias técnicas de recompensa de errores para simplificar el proceso de identificación y explotación de vulnerabilidades, asegurando una evaluación exhaustiva de las aplicaciones web.
## Desde la carga de archivos hasta otras vulnerabilidades
* Establece el **nombre de archivo** como `../../../tmp/lol.png` e intenta lograr una **travesía de ruta**
@ -191,26 +192,26 @@ Ten en cuenta que **otra opción** que puedes considerar para evadir esta verifi
* Carga de archivo **JS** + **XSS** = [Explotación de **Service Workers**](../xss-cross-site-scripting/#xss-abusing-service-workers)
* [**XXE en carga de archivos svg**](../xxe-xee-xml-external-entity.md#svg-file-upload)
* [**Redirección abierta** mediante la carga de archivos svg](../open-redirect.md#open-redirect-uploading-svg-files)
* Prueba **diferentes cargas útiles svg** de [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)\*\*\*\*
* Prueba con **cargas útiles svg** diferentes de [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)\*\*\*\*
* [Famosa vulnerabilidad de **ImageTrick**](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
* Si puedes **indicar al servidor web que capture una imagen desde una URL**, podrías intentar abusar de una [SSRF](../ssrf-server-side-request-forgery/). Si esta **imagen** va a ser **guardada** en algún sitio **público**, también podrías indicar una URL de [https://iplogger.org/invisible/](https://iplogger.org/invisible/) y **robar información de cada visitante**.
* Si puedes **indicar al servidor web que capture una imagen desde una URL**, podrías intentar abusar de un [SSRF](../ssrf-server-side-request-forgery/). Si esta **imagen** va a ser **guardada** en algún sitio **público**, también podrías indicar una URL de [https://iplogger.org/invisible/](https://iplogger.org/invisible/) y **robar información de cada visitante**.
* [**XXE y CORS** bypass con carga de PDF-Adobe](pdf-upload-xxe-and-cors-bypass.md)
* PDF especialmente diseñados para XSS: La [siguiente página muestra cómo **inyectar datos PDF para obtener ejecución de JS**](../xss-cross-site-scripting/pdf-injection.md). Si puedes cargar PDF, puedes preparar un PDF que ejecute JS arbitrario siguiendo las indicaciones proporcionadas.
* Carga el contenido de \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) para verificar si el servidor tiene algún **antivirus**
* Verifica si hay algún **límite de tamaño** al cargar archivos
* Carga el contenido de \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) para comprobar si el servidor tiene algún **antivirus**
* Comprueba si hay algún **límite de tamaño** para cargar archivos
Aquí tienes una lista de los 10 principales logros que puedes obtener mediante la carga de archivos (de [enlace](https://twitter.com/SalahHasoneh1/status/1281274120395685889)):
Aquí tienes una lista de las 10 principales cosas que puedes lograr mediante la carga de archivos (de [enlace](https://twitter.com/SalahHasoneh1/status/1281274120395685889)):
1. **ASP / ASPX / PHP5 / PHP / PHP3**: Webshell / RCE
2. **SVG**: XSS almacenado / SSRF / XXE
3. **GIF**: XSS almacenado / SSRF
4. **CSV**: Inyección CSV
4. **CSV**: Inyección de CSV
5. **XML**: XXE
6. **AVI**: LFI / SSRF
7. **HTML / JS**: Inyección HTML / XSS / Redirección abierta
7. **HTML / JS** : Inyección de HTML / XSS / Redirección abierta
8. **PNG / JPEG**: Ataque de inundación de píxeles (DoS)
9. **ZIP**: RCE a través de LFI / DoS
10. **PDF / PPTX**: SSRF / XXE ciego
10. **PDF / PPTX**: SSRF / XXE Ciego
#### Extensión de Burp
@ -302,7 +303,7 @@ root@s2crew:/tmp#
:%s/xxA/..\//g
:x!
```
¡Solo queda un paso! ¡Sube el archivo ZIP y permite que la aplicación lo descomprima! Si tiene éxito y el servidor web tiene suficientes privilegios para escribir en los directorios, habrá una simple ejecución de comandos del sistema operativo:
¡Solo queda un paso! ¡Sube el archivo ZIP y deja que la aplicación lo descomprima! Si tiene éxito y el servidor web tiene suficientes privilegios para escribir en los directorios, habrá una simple ejecución de comandos del sistema operativo:
[![b1](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1-300x106.png)](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1.png)