Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Upload_Bypass — Una herramienta simple para sortear restricciones de carga de archivos. | Kitploit
Herramientas/GitHubGitHub/sajibuu/upload_bypass
Escáneres de VulnerabilidadesGeneración de PayloadsExplotaciónSeguridad WebPruebas de Penetración
GitHubsajibuu/upload_bypass

Upload_Bypass

Una herramienta simple para sortear restricciones de carga de archivos.

Ver Repositorio
908132hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Upload_Bypass v3

GPL-3.0 License 287245591-b1f3cdd6-3d00-4bbb-94c1-38a9204add71

Acerca de

Upload Bypass es una herramienta simple diseñada para ayudar a los probadores de penetración y cazadores de bugs en la prueba de mecanismos de carga de archivos. Aprovecha diversas técnicas de bug bounty para simplificar el proceso de identificación y explotación de vulnerabilidades, asegurando evaluaciones exhaustivas de aplicaciones web.

Desarrollado por Sagiv

2024-02-18_20h04_06

🚀 Actualizaciones

  • El código está casi reescrito desde cero, utiliza un mejor análisis de archivos y elimina la mayoría de los errores.
  • ¡Código modular! Ahora puedes contribuir al código y agregar tus propios módulos.
  • Se introducen 3 modos diferentes: detección, explotación y verificación anti-malware, ¡elige tu arma!
  • Nueva función de estado, ¡ahora puedes pausar el código y reanudar desde donde lo dejaste!
  • Nueva interfaz de usuario para una fácil visualización.
  • Archivo Docker para una fácil implementación.
  • Varios archivos de prueba proporcionados para pruebas internas.
  • Modo depuración. Si encuentras un error, puedes guardar el trace de la pila y compartirlo conmigo para un análisis más detallado.

Atención

¡Esta herramienta está restringida en el examen OSCP!

Características

Modo de Detección:

Adecuado para pruebas de penetración en el mundo real. Este modo cargará archivos inofensivos y no intentará explotar el objetivo.

Nuevo - Si se proporciona una carpeta de destino para los archivos cargados, el programa determinará si el archivo de muestra cargado se renderiza. Por ejemplo, si eliges PHP, el programa intentará determinar si se ejecuta un comando echo y se renderiza con éxito; si es así, sugerirá entrar en un shell interactivo.

Modo de Explotación:

Adecuado cuando deseas explotar el objetivo y cargar un Web-shell interactivo (si se proporciona un directorio de carga de destino), cargará el archivo con un UUID aleatorio, por lo que será más difícil de adivinar para los fuzzers.

Modo Anti-Malware:

Adecuado para una prueba de presencia de anti-malware. Carga un archivo Eicar (archivo de prueba anti-malware) en el sistema, y si el usuario especifica la ubicación del archivo cargado, el programa verificará si el archivo se cargó correctamente y existe en el sistema para determinar si hay un anti-malware presente.

Personalización

Consulta config.py en el directorio lib, puedes agregar nuevas extensiones, tipos MIME, magic bytes, configurar el uso del protocolo HTTP/HTTPS, etc...

Para agregar un nuevo módulo, simplemente agrega una función con la funcionalidad deseada a modules.py y luego añade la función por nombre a la lista "active_modules" en config.py

Para agregar una nueva extensión de archivo, agrega un archivo sample.{ext} a assets/sample_files, luego agrega la extensión y su tipo MIME/magic bytes a config.py

Descarga:

root@kitploit:~
git clone https://github.com/sAjibuu/Upload_Bypass.git

Instalación:

root@kitploit:~
pip install -r requirements.txt

Instalación desde Docker Hub

root@kitploit:~
sudo docker pull sajibuu/upload_bypass

Instalación desde un archivo Docker local

root@kitploit:~
sudo docker build -t sajibuu/upload_bypass .

Ejemplos de uso con Docker

Ejemplo sin proxy:

root@kitploit:~
sudo docker run -v $(pwd)/request:/Upload_Bypass/{your_request_file} -it sajibuu/upload_bypass -r request -s 'file was uploaded successfully' -E php -e

Ejemplo con proxy:

¡Asegúrate de escuchar en el puerto 8080 en todas las interfaces!

root@kitploit:~
sudo docker run -v $(pwd)/request:/Upload_Bypass/{your_request_file} -it sajibuu/upload_bypass -r request -s 'file was uploaded successfully' -E php -e -p http://{docker_interface_IP}:8080

Limitaciones:

La herramienta no funcionará correctamente con lo siguiente:

  1. Implementación de CAPTCHA presente.
  2. Requisito de un token CSRF para cada solicitud.
  3. Se proporciona una carpeta de destino para los archivos cargados, pero los archivos cargados se guardan con un GUID (Identificador Único Global) en lugar de sus nombres de archivo reales; el programa no podrá ingresar al shell interactivo.

Descargo de responsabilidad

Ten en cuenta que el uso de Upload Bypass y cualquier acción realizada con él es bajo tu propio riesgo. La herramienta se proporciona únicamente con fines educativos y de prueba. El desarrollador de Upload Bypass no es responsable de ningún uso indebido, daño o actividades ilegales causadas por su uso.

Uso:

Atención

El programa solo funciona con archivos de solicitud generados por herramientas proxy, como Burp Suite y ZAP OWASP.

Antes de guardar el archivo de solicitud desde el proxy que estás utilizando, por ejemplo, Burp Suite, reemplaza los siguientes valores de parámetros con sus marcadores correspondientes:

Contenido del archivo: *data*

Ejemplo: Reemplaza los datos binarios de la imagen con la cadena *data*

Nombre del archivo: *filename*

Ejemplo: Reemplaza el nombre del archivo incluida su extensión con la cadena *filename*

Cabecera Content-Type: *mimetype*.

Ejemplo: Reemplaza el content-type (tipo MIME) del archivo con la cadena *mimetype*

Ejemplo 1:

Cómo debería verse en una solicitud JSON:

image

Ejemplo 2:

Cómo debería verse en una solicitud de datos multiparte:

2024-02-27_11h20_23

Opciones del usuario:

root@kitploit:~

Usage: Upload Bypass [OPTIONS]

Options:
  -h, --help     Print help (see more with '--help')
  -U, --usage   Print the how to save the request file instructions.
  -v, --version  Print version

Required Arguments: 
  -r, --request_file <REQUEST_FILE>    Provide a request file to be proccessed
  -E, --extension    <EXTENSION>       Forbidden extension to check (ex: php)
  -A, --allowed      <EXTENSION>       Allowed extension (ex: jpeg) - Optional - if not set the program will auto-detect the extension

  Choose only one from the options below:
  -s, --success      <MESSAGE>         Provide a success message when a file is uploaded (ex: File was uploaded successfully)
  -f, --failure      <MESSAGE>         Provide a failure message when a file is uploaded (ex: File is not allowed!)
  -S, --status_code  <STATUS_CODE>     Provide a status code for a success upload (ex: 200)

Mode Settings: 
  -d, --detect          Upload harmless sample files (Suitable for a real penetration test)
  -e, --exploit         Upload Web-Shells files when testing
  -a, --anti_malware    Upload Anti-Malware Test file (Eicar) when testing
      I.  If set with -E flag the program will test with the Eicar string along with the choosen extension
      II. If set without the -E flag the program will test with Eicar string and a com extension

Modules Settings:     
  -l, --list            List all modules  
  -i, --include_only <MODULES>   Include only modules to test from (ex: extension_shuffle, double_extension)
  -x, --exclude      <MODULES>   Exclude modules (ex: svg_xxe, svg_xss)

Request Settings: 
  --base64              Encode the file data with Base64 algorithm
  --allow_redirects     Follow redirects
  -P, --put             Use the HTTP PUT method for the requests (Default is POST)
  -Pa, --patch          Use the HTTP Patch method for the requests (Default is POST)
  -R, --response        Print the response to the screen
  -c, --continue        Continue testing all files, even if a few uploads encountered success
  -t, --time_out <NUM>  Set the request timeout (Default is 8)
  -rl, --rate_limit <NUMBER>  Set a rate-limit with a delay in milliseconds between each request

Proxy Settings: 
  -p, --proxy <PROXY>   Proxy to use for requests (ex: http(s)://host:port, socks5(h)://host:port)
  -k, --insecure        Do not verify SSL certificates
  --burp_http           Set --proxy to 127.0.0.1:8080 and set --insecure to true (For HTTP requests)
  --burp_https          Set --proxy to 127.0.0.1:8080 and set --insecure to false (For HTTPs requests)

Optional Settings: 
  -D, --upload_dir <UPLOAD_DIR>  Provide a remote path where the Web-Shell should be uploaded (ex: /uploads)
  -o, --output  <OUTPUT_PATH>    Output file to write the results into - Default current directory (ex: ~/Desktop/results.txt)
  --debug  <NUM>                 Debug mode - Print the stack trace error to the screen and save it to a file (ex: --debug 1)
      I.  Level 1 - Saves only the stack trace error (default).
      II. Level 2 - Saves the stack trace error and user's arguments along with the request file.
  
Resume settings:
  --resume  <STATE_FILE>  State file from which to resume a partially complete scan

Update settings:
  -u, --update  Update the program to the latest version

Ejemplos

Modo de detección

root@kitploit:~
 python upload_bypass.py -r test -s 'File uploaded successfully' -E php -D /uploads --burp --detect

Modo de explotación

root@kitploit:~
 python upload_bypass.py -r test -s 'File uploaded successfully' -E php -D /uploads --burp --exploit

Modo anti-malware

root@kitploit:~
 python upload_bypass.py -r test -s 'File uploaded successfully' -E php -D /uploads --burp --anti_malware

Problemas

Si encuentras un problema, utiliza el modo de depuración con un valor de bandera de 2 y compártelo conmigo (el archivo de depuración se guarda con los argumentos proporcionados por el usuario, el archivo de solicitud proporcionado y el error de trace de la pila). Si el archivo contiene información sensible, puedes usar un valor de bandera de 1, que solo guarda el error de trace de la pila en el archivo.

Contribución

Si deseas contribuir a mi código, especifica exactamente qué agregaste al código y por qué, y asegúrate de realizar múltiples pruebas antes de enviar la solicitud de fusión.

Créditos

  • Hacktricks - Agradecimiento especial por proporcionar técnicas e ideas valiosas utilizadas en esta herramienta.
  • Artemixer - Gracias por inspirarme con tu versión más ligera de mi herramienta para reescribir todo el código y hacerlo modular.
Descargar herramienta