Maison >Opération et maintenance >Sécurité >Exemple d'analyse des vulnérabilités de téléchargement de fichiers Web
La fonction de téléchargement de fichiers est une fonction indispensable pour la plupart des applications WEB. Les sites Web permettent aux utilisateurs de télécharger leurs propres avatars, certains sites de réseaux sociaux permettent aux utilisateurs de télécharger des photos et certains sites Web de services exigent que les utilisateurs le fassent. télécharger des fichiers électroniques de documents de support, les sites Web de commerce électronique permettent aux utilisateurs de télécharger des photos pour afficher les conditions du produit, etc. Sans mesures de sécurité adéquates, même une fonction de téléchargement de fichiers apparemment insignifiante peut être confrontée à des risques de sécurité extrêmement élevés.
Lorsqu'un utilisateur télécharge un fichier dans le module de fonction de téléchargement de fichier, si l'application WEB ne vérifie pas efficacement la sécurité du fichier pendant le processus de téléchargement de fichier, l'attaquant peut attaquer le serveur en téléchargeant des fichiers malveillants tels que WEBshell. Dans ce cas, on pense que le système présente une vulnérabilité de téléchargement de fichiers.
La méthode la plus courante de vulnérabilité de téléchargement de fichiers consiste à télécharger un fichier cheval de Troie de site Web (webshell) WEBSHELL est également appelé fichier cheval de Troie de page Web. Selon les différents langages de développement, il est divisé en. Cheval de Troie ASP et cheval de Troie PHP, chevaux de Troie JSP, etc. Ce type de cheval de Troie utilise les fonctions d'exécution de commandes système, de lecture et d'écriture de fichiers dans des langages de script. Une fois téléchargés sur le serveur et analysés par le moteur de script, l'attaquant peut contrôler le serveur. .
Les fichiers Webshell sont divisés en gros chevaux et petits chevaux (cheval de Troie d'une phrase), chevaux d'images, etc.
Damas : La fonction est relativement bonne et peut être utilisée avec le navigateur, la quantité de code est généralement importante ; est relativement faible, la quantité de code est importante et les fonctionnalités doivent généralement être masquées par le cryptage et d'autres méthodes.
Xiao Ma : La fonction est simple et doit être utilisée avec le client ; la taille du code est généralement petite ; la dissimulation est relativement forte et il est facile de masquer les fonctionnalités via la déformation et le filtrage de contournement. l'outil couteau.
Picture Horse : lorsqu'un site Web restreint le téléchargement aux formats liés aux images, les attaquants ne peuvent pas contourner la restriction et peuvent essayer d'utiliser des Picture Horses pour mettre en œuvre des opérations WebShell.
En une phrase, le cheval de Troie est similaire à
(1) Le format de téléchargement de cette page Web est restreint et doit être conforme aux formats jpg, jpeg, JPG, JPEG, le format original est donc modifié au format 1.jpg (vérification côté serveur)
Ouvrez le logiciel burp suite pour intercepter le paquet de données et changez le nom du fichier en 1.php afin que le script php puisse être exécuté. Sinon, bien que le fichier avec le suffixe jpg puisse être téléchargé, il n'aura aucune fonction d'exécution.
Définissez v=phpinfo() dans le plug-in hackbar ; vous pouvez afficher de nombreuses informations sur l'état actuel de php
(2) Cette page limite le format de téléchargement ( MIME), et le fichier doit être Changez le format en JPEG ou PNG (vérification côté serveur)
Utilisez la suite burp pour intercepter les informations, changez le type de contenu en image/png
Utilisez l'outil hackbar pour définir le paramètre v=phoinfo(); afficher les informations sur l'état de PHP
(3) Cette page filtre le suffixe du fichier et n'accepte pas les fichiers de type PHP (vérification côté serveur)
Ouvrez le logiciel burp suite pour intercepter les informations et copier le fichier. Changez le nom en 1.PHp pour contourner l'identification du serveur Web
Utilisez hackbar pour définir v=system (ipconfig);
(4) Utilisez la troncature pour tronquer le jpg. Cette phrase prête quelque peu à confusion. La bonne façon de l’écrire devrait être : 1. Vulnérabilité de téléchargement de fichiers utilisant « %00 » pour tronquer le nom du fichier. 2. Lorsque vous utilisez "%00", vous pouvez utiliser "ctrl+shift+u" pour le compiler.
1.php%00.jpg, %00 utilise ctrl+shift+u pour compiler
Utilisez l'outil hackbar pour définir le paramètre v=phoinfo(); vérifiez les informations sur l'état du php (5) Cette page Web permet uniquement de télécharger des images et la modification du nom de suffixe n'est pas valide #🎜 🎜## 🎜🎜#
Téléchargez l'image b374k.jpg du cheval, le mot de passe de connexion est b374k
Utilisez le navigateur pour utilisez le cheval d'image pour effectuer des opérations Webshell
Les types de fichiers autorisés à être téléchargés sur cette page incluent jpg, jpeg, png, gif et 7z. Vous pouvez utiliser la méthode d'Apach pour identifier l'extension de l'arrière vers l'avant lorsqu'il ne peut pas reconnaître le nom du suffixe, et changer 1.jpg en 1.php.7z via burp, et cela deviendra un fichier compressé.
Capturez le paquet via le logiciel burp et changez 1.jpg en 1.php.7z via burp, et il deviendra un fichier compressé déposer .
Utilisez l'outil hackbar pour définir le paramètre v=phoinfo(); afficher les informations sur l'état de php
#🎜 🎜 #Les vulnérabilités de téléchargement de fichiers sont relativement courantes et nuisibles à la sécurité Web. Les créateurs de sites Web peuvent accroître les efforts de prévention à cet égard : comme renforcer la portée de la liste noire des suffixes de fichiers ; le répertoire et le répertoire de sauvegarde du fichier téléchargé n'autorisent pas les autorisations d'exécution, etc.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!