mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
Translated ['pentesting-web/file-upload/README.md'] to es
This commit is contained in:
parent
6022a99976
commit
59c591cac2
1 changed files with 14 additions and 14 deletions
|
@ -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 usar 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
|
||||
|
||||
```
|
||||
|
@ -103,12 +103,12 @@ AAA<--SNIP 232 A-->AAA.php.png
|
|||
6. Subir un archivo en **Windows** utilizando **nombres** **reservados** (**prohibidos**) como CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 y LPT9.
|
||||
* También intenta **subir un ejecutable** (.exe) o un **.html** (menos sospechoso) que **ejecutará código** cuando sea abierto accidentalmente por la víctima.
|
||||
|
||||
### Trucos especiales de extensiones
|
||||
### Trucos especiales de extensión
|
||||
|
||||
Si estás intentando subir archivos a un servidor **PHP**, [echa un vistazo al truco de **.htaccess** para ejecutar código](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\
|
||||
Si estás intentando subir archivos a un servidor **ASP**, [echa un vistazo al truco de **.config** para ejecutar código](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files).
|
||||
|
||||
Los archivos `.phar` son como los archivos `.jar` para Java, pero para PHP, y se pueden **usar como un archivo PHP** (ejecutándolo con PHP o incluyéndolo dentro de un script...).
|
||||
Los archivos `.phar` son como los archivos `.jar` para Java, pero para PHP, y se pueden **utilizar como un archivo PHP** (ejecutándolo con PHP o incluyéndolo dentro de un script...).
|
||||
|
||||
La extensión `.inc` se utiliza a veces para archivos PHP que solo se utilizan para **importar archivos**, por lo que en algún momento alguien podría haber permitido **ejecutar esta extensión**.
|
||||
|
||||
|
@ -142,12 +142,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 flexible. 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 laxo. 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")')
|
||||
|
@ -181,7 +181,7 @@ Ten en cuenta que **otra opción** que puedes estar considerando para evadir est
|
|||
|
||||
## 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.
|
||||
* [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 por 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
|
||||
|
||||
|
@ -199,17 +199,17 @@ Ten en cuenta que **otra opción** que puedes estar considerando para evadir est
|
|||
* [**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 comprobar si el servidor tiene algún **antivirus**
|
||||
* Comprueba si hay algún **límite de tamaño** al cargar archivos
|
||||
* 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)):
|
||||
|
||||
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
|
||||
|
@ -227,7 +227,7 @@ Consulta [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.w
|
|||
|
||||
### Carga automática de archivos Zip/Tar descomprimidos
|
||||
|
||||
Si puedes cargar un archivo ZIP que se va a descomprimir dentro del servidor, puedes hacer 2 cosas:
|
||||
Si puedes cargar un archivo ZIP que se va a descomprimir en el servidor, puedes hacer 2 cosas:
|
||||
|
||||
#### Enlace simbólico
|
||||
|
||||
|
@ -304,7 +304,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)
|
||||
|
||||
|
@ -321,7 +321,7 @@ pop graphic-context
|
|||
```
|
||||
## Incrustando una Shell de PHP en una imagen PNG
|
||||
|
||||
La razón principal para poner una web shell en el chunk IDAT es que tiene la capacidad de evadir operaciones de redimensionamiento y re-muestreo. PHP-GD contiene dos funciones para hacer esto: [imagecopyresized](http://php.net/manual/en/function.imagecopyresized.php) e [imagecopyresampled](http://php.net/manual/en/function.imagecopyresampled.php).
|
||||
La razón principal para poner una shell web en el chunk IDAT es que tiene la capacidad de evadir operaciones de redimensionamiento y re-muestreo: PHP-GD contiene dos funciones para hacer esto [imagecopyresized](http://php.net/manual/en/function.imagecopyresized.php) y [imagecopyresampled](http://php.net/manual/en/function.imagecopyresampled.php).
|
||||
|
||||
Lee este artículo: [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
|
||||
|
||||
|
@ -336,7 +336,7 @@ Esto ayuda a cargar un archivo que cumple con el formato de varios formatos dife
|
|||
Más información en: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
|
||||
|
||||
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
|
||||
**Consejo de recompensa por errores**: ¡**Regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**! ¡Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comienza a ganar recompensas de hasta **$100,000**!
|
||||
**Consejo de recompensa por errores**: **regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**. ¡Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comienza a ganar recompensas de hasta **$100,000**!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -347,7 +347,7 @@ Más información en: [https://medium.com/swlh/polyglot-files-a-hackers-best-fri
|
|||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue