
Una herramienta simple para sortear restricciones de carga de archivos.

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.

¡Esta herramienta está restringida en el examen OSCP!
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.
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.
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.
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
git clone https://github.com/sAjibuu/Upload_Bypass.git
pip install -r requirements.txt
sudo docker pull sajibuu/upload_bypass
sudo docker build -t sajibuu/upload_bypass .
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
¡Asegúrate de escuchar en el puerto 8080 en todas las interfaces!
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
La herramienta no funcionará correctamente con lo siguiente:
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.
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*
Cómo debería verse en una solicitud JSON:

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

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)