/file-upload

Catalogue de payloads destinés au téléversement de fichiers. Il s'agit d'un ensemble de plusieurs fichiers contenant du code malveillant à utiliser lors des tests d'intrusion, rassemblés en un seul endroit.

Primary LanguagePython

Payloads destinés au téléversement de fichier

De nombreux applications permettent le téléversement/téléchargement de données/informations. Mais l'acceptation de fichiers peut présenter des risques.

Vous trouvez ici une liste de payload de fichier à téléverser, lors d'une test d'intrusion par exemple, et ainsi démontrer l'existence de la faille (POC).

Mind map

Ce mind map résume les attaques possibles selon le type de fichiers autorisées à être téléverser.

Présentation

Chaque type de fichier possède un dossier, contenant un README.md et un ou plusieurs sous-dossier selon le nombre d'attaques possible.

Le README.md présente les différents attaques et payloads. Des scripts peuvent être présentes pour générer le payload.

Liste de types de fichiers

Voici la liste de types de fichiers qui peuvent être intéressants à téléverser sur une application. La plupart des applications permettant un téléversement de fichiers disposent généralement d'une forme de protection, telle qu'une allowlist / blocklist de fichiers autorisées ou non. Bien que les allowlist soient la méthode la plus sûre pour protéger les téléversements de fichiers, de nombreux applications utilisent les blocklist. Il est donc utile d'essayer les extensions de fichiers les moins utilisées.

Programmation

Type Extension Risque
PHP .php, .php3, .php4, .php5, .php7, .phar, .phps, .phpt, .pht, .phtm, .phtml RCE via webshell, Information Disclosure
ASP .asp, .aspx, .cer, .asa, .aspx, .cshtml, .vbhtml RCE via webshell
SSI .shtml, .stm, .shtm RCE xap, Information Disclosure via SSI Injection
Python .py RCE via webshell
Perl .pl, .pm, .cgi, .lib (note, .pm and .lib cannot be called directly, but rather invoked as modules) RCE via webshell
Ruby .rb RCE via webshell
Shell .sh RCE via webshell
Java .jsp, .jspx, .jsw, .jsv, .jspf RCE via webshell
Coldfusion .cfm, .cfml, .cfc, .dbm (if IIS is configured right) RCE via webshell

Fichier de Configuration

Type Extension Risque
Apache .htaccess RCE, Information Disclosure
IIS web.config RCE via ASP webshell, XSS
Python __init__.py

Archivage

Type Extension Risque
Zip .zip Information Disclosure via Symlink, RCE via LFI, Propagation de malware (Test anti malware)
RAR .rar
tar .tar
7z 7z

Image

Type Extension Risque
JPEG .jpg, .jpeg RCE via ImageTragick
PNG .png RCE via ImageTragick
GIF .gif RCE via ImageTragick
SVG .svg XXS, XXE, HTML Injection, Open Redirection, DoS
MVG .mvg RCE via ImageTragick

Langage de balisage

Type Extension Risque
HTML .html, .htm XSS, HTML Injection, Open Redirection
XML .xml XXE, XXS, DoS
XHTML .xhtml

Document XML

Document Office Open XML (OOXML)

Type Extension Risque
Document Word .docx, .docm XXEXSS
Document PowerPoint .pptx, .pptm XXE, XSS
Document Excel .xlsx, .xlsm XXE, XSS

Open Document Format (ODF)

Type Extension Risque
Text .odt, .fodt XXE, XSS
Presentation .odp, .fodp XXE, XSS
Spreadsheet .ods, .fods XXE, XSS
Graphics .odg, fodg XXE, XSS

Autres

Type Extension Risque
EICAR .com, .zip Propagation de malware (Test anti malware)

Nom de fichiers

Nom du fichier Explication
../../../index.php Sortir du répertoire de téléchargement, et écraser le fichier original

Todo

Firstly, it uses a path provided by the user. This path is not validated, therefore, it would allow the user to upload the file to any path on the hosting server.

Secondly, it does not restrict the type of the file being uploaded, therefore, it would allow the user to upload a malicious file to gain access to the server.

Finally, it does not restrict the size of the file. This would allow to easily exhaust the host resources and consequently produce a DoS.

Annexes

Définition du problème de téléversement de fichiers :