
Ein einfaches Tool, um Datei-Upload-Beschränkungen zu umgehen.

Upload Bypass ist ein einfaches Tool, das Penetrationstestern und Bug Hunter bei der Prüfung von Datei-Upload-Mechanismen helfen soll. Es nutzt verschiedene Bug-Bounty-Techniken, um den Prozess der Identifizierung und Ausnutzung von Schwachstellen zu vereinfachen und eine gründliche Bewertung von Webanwendungen sicherzustellen.

Dieses Tool ist in der OSCP-Prüfung eingeschränkt!
Geeignet für reale Penetrationstests. Dieser Modus lädt harmlose Dateien hoch und versucht nicht, das Ziel auszunutzen.
Neu - Wenn ein Zielordner für die hochgeladenen Dateien angegeben wird, ermittelt das Programm, ob die hochgeladene Beispieldatei gerendert wird. Zum Beispiel: Wenn Sie PHP gewählt haben, versucht das Programm festzustellen, ob ein echo-Befehl ausgeführt und erfolgreich gerendert wird. Wenn ja, schlägt es vor, eine interaktive Shell zu öffnen.
Geeignet, wenn Sie das Ziel ausnutzen und eine interaktive Web-Shell hochladen möchten (falls ein Ziel-Upload-Verzeichnis angegeben ist). Die Datei wird dann mit einer zufälligen UUID hochgeladen, sodass sie für Fuzzer schwieriger zu erraten ist.
Geeignet für einen Anti-Malware-Präsenztest. Laden Sie eine Eicar-Datei (Anti-Malware-Testdatei) auf das System hoch. Wenn der Benutzer den Speicherort der hochgeladenen Datei angibt, prüft das Programm, ob die Datei erfolgreich hochgeladen wurde und im System existiert, um festzustellen, ob eine Anti-Malware auf dem System vorhanden ist.
Schauen Sie sich die config.py im lib-Verzeichnis an. Sie können neue Erweiterungen, MIME-Typen, Magic Bytes hinzufügen, die Verwendung von HTTP/HTTPS-Protokollen konfigurieren usw.
Um ein neues Modul hinzuzufügen, fügen Sie einfach eine Funktion mit Ihrer gewünschten Funktionalität in die modules.py ein und fügen Sie dann den Funktionsnamen zur Liste 'active_modules' in der config.py hinzu.
Um eine neue Dateierweiterung hinzuzufügen, fügen Sie eine sample.{ext}-Datei in assets/sample_files hinzu und fügen Sie dann die Erweiterung sowie ihren MIME-Typ/Magic Bytes in die config.py ein.
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
Stellen Sie sicher, dass Sie Port 8080 auf allen Schnittstellen abhören!
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
Das Tool funktioniert in folgenden Fällen nicht ordnungsgemäß:
Bitte beachten Sie, dass die Nutzung von Upload Bypass und alle damit verbundenen Handlungen ausschließlich auf eigenes Risiko erfolgen. Das Tool dient ausschließlich zu Bildungs- und Testzwecken. Der Entwickler von Upload Bypass übernimmt keine Verantwortung für Missbrauch, Schäden oder illegale Aktivitäten, die durch seine Nutzung verursacht werden.
Das Programm arbeitet nur mit Request-Dateien, die von Proxy-Tools wie Burp Suite und ZAP OWASP generiert wurden.
Bevor Sie die Request-Datei aus Ihrem Proxy (z. B. Burp Suite) speichern, ersetzen Sie die folgenden Parameterwerte durch die entsprechenden Markierungen:
Dateiinhalt: *data*
Dateiname: *filename*
Content-Type-Header: *mimetype*
How it should look like in a JSON request:

How it should look like in a multi-part data request:

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)