


Présentation du correctif pour la vulnérabilité de fuite de nom de fichier court IIS
1. Qu'est-ce qu'IIS
Internet Information Services (IIS, anciennement connu sous le nom d'Internet Information Server) Internet Information Services est un Microsoft Le serveur Web évolutif fourni par la société prend en charge HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP et NNTP, etc. Initialement utilisé dans la série Windows NT, il a ensuite été intégré à Windows 2000, Windows XP Professionnel, Windows Server 2003 et versions ultérieures, mais il n'y a pas d'IIS sur la version Windows XP Home. IIS n'est actuellement disponible que pour les systèmes Windows et non pour les autres systèmes d'exploitation.
Selon les données de Netcraft de février 2017, IIS détenait une part de marché de 10,19 % parmi les « millions de sites Web les plus fréquentés », devenant ainsi le troisième plus grand serveur Web au monde , derrière Apache à 41,41% et Nginx à 28,34%. Actuellement, les versions populaires de Windows ont le service IIS installé par défaut, mais en même temps, la sécurité d'IIS a été critiquée par l'industrie. Une fois qu'une vulnérabilité à haut risque apparaît dans IIS, la menace sera très sérieuse.
Recommandé (gratuit) : iis
Avant d'aborder les vulnérabilités d'IIS, comprenons d'abord la version IIS intégrée par défaut sous différents systèmes Windows . Afin de mieux comprendre et distinguer l'étendue de l'impact des vulnérabilités IIS :
Figure 1 Version IIS par défaut de chaque version de Windows
2. Liste complète. des vulnérabilités IIS
Qianlimu Lab a collecté les vulnérabilités liées à IIS au cours des quinze dernières années. Il existe un total de 39 vulnérabilités à risque moyen et élevé, y compris la télécommande HTTP.sys (MS15-034). vulnérabilité d'exécution de code qui a éclaté en 2015 et 2016. La vulnérabilité d'élévation de privilèges WebDAV (MS16-016) est particulièrement répandue.
Figure 2 Une liste complète des vulnérabilités IIS au cours des 15 dernières années
Après avoir lu les vulnérabilités IIS ci-dessus au cours des dix dernières années, vous vous demandez peut-être : pourquoi ne l'avez-vous pas vu ? Qu'en est-il du protagoniste de cet article, "IIS Short File Vulnerability" ? ! Avant de comprendre la famille de vulnérabilités IIS, nous découvrons d'abord certaines fonctionnalités d'IIS sous Windows via des fichiers courts IIS.
3. Fichier court IIS
1. L'origine de la vulnérabilité des fichiers courts IIS
Fichier/dossier court Microsoft IIS La fuite d'informations sur le nom a été découverte pour la première fois par Soroush Dalili de l'équipe de recherche sur les vulnérabilités le 1er août 2010, et le fournisseur (Microsoft Corporation) en a été informé le 3 août 2010. Microsoft a répondu le 1er décembre 2010 et le 4 janvier 2011 que la prochaine version serait corrigée. Le 29 juin 2012, cette vulnérabilité a été révélée publiquement (risque moyen).
Cette vulnérabilité est en fait causée par l'ancien tilde (~) de la convention de nom DOS 8.3 (SFN) dans les requêtes HTTP. Il permet aux attaquants distants d'exposer les noms de fichiers et de dossiers sous la racine Web (qui ne devrait pas être accessible). Un attaquant peut trouver des fichiers importants qui ne sont généralement pas directement accessibles de l'extérieur et obtenir des informations sur l'infrastructure de l'application.
La divulgation d'informations provoquée par le tilde Microsoft IIS est la vulnérabilité à risque moyen la plus courante sur les réseaux mondiaux. Ce problème existe depuis au moins 1990, mais s’est avéré difficile à détecter, difficile à résoudre ou facile à ignorer complètement.
2. Portée et dommages de la vulnérabilité des fichiers courts IIS
2.1 Versions concernées :
IIS 1.0, Windows NT 3.51
IIS 3.0, Windows NT 4.0 Service Pack 2
IIS 4.0, Windows NT 4.0 Option Pack
IIS 5.0, Windows 2000
IIS 5.1, Windows XP Professionnel et Windows XP Media Center Edition
IIS 6.0, Windows Server 2003 et Windows XP Professionnel Édition x64
IIS 7.0, Windows Server 2008 et Windows Vista
IIS 7.5, Windows 7 (activé à distanceou pas de fichier web.config) IIS 7.5, Windows 2008 (mode pipeline classique)
Remarque : IIS n'est pas affecté lors de l'utilisation de .Net Framework 4
(Source de données ci-dessus : https:/ /www.securityfocus.com/archive/1/523424)
Il a été vérifié que la portée concernée ci-dessus concerne principalement la méthode HTTP GET et nécessite l'installation d'applications ASP.NET au niveau en même temps. Le découvreur de cette vulnérabilité a été divulgué à nouveau en 2014 : lors des tests d'IIS 7.5 (Windows 2008 R2) et IIS 8.0 (Windows 2012), lorsque OPTIONS est utilisé à la place de la méthode GET, si le nom de fichier court dans la requête existe, IIS A un message d'erreur différent sera renvoyé. Profitant de cette fonctionnalité, les attaquants peuvent mettre en œuvre une analyse de fichiers ou de répertoires basée sur des noms de fichiers courts dans la dernière version d'IIS.
Actuellement, IIS prend en charge six méthodes HTTP pour deviner les noms de fichiers courts : DEBUG, OPTIONS, GET, POST, HEAD et TRACE Verified by Qianlimu Laboratory, les noms de fichiers courts d'IIS 8.0, IIS 8.5 et IIS. 10.0 Les noms de fichiers peuvent être devinés avec succès grâce aux méthodes OPTIONS et TRACE. Par conséquent, les versions concernées ci-dessus doivent être ajoutées avec les versions suivantes :
IIS 8.0, Windows 8, Windows Server 2012
IIS 8.5, Windows 8.1, Windows Server 2012 R2
IIS 10.0, Windows 10, Windows Server 2016
On peut voir que toutes les versions d'IIS ont un problème de fuite de noms de fichiers courts, et Microsoft semble avoir ignoré ce problème. Il ressort de la réponse de Microsoft au découvreur de la vulnérabilité que la vulnérabilité du fichier court IIS ne répond pas aux normes de mise à jour de sécurité et qu'il doit déterminer quand elle sera résolue dans la prochaine version logique .
2.2 Risques de vulnérabilité :
2.2.1 Utilisation du caractère "~" pour deviner et exposer des noms de fichiers/dossiers courts (danger principal)
Prise en charge de Windows pour générer des noms de fichiers (courts) compatibles MS-DOS au format 8.3 pour permettre aux programmes MS-DOS ou Windows 16 bits d'accéder à ces fichiers. Entrez le répertoire racine du site Web IIS C:inetpubwwwroot sous cmd et entrez « dir /x » pour voir l'effet du nom de fichier court :
Figure 3 Nom de fichier court IIS
L'image ci-dessus est le répertoire racine du site par défaut d'IIS 10.0 intégré à Windows 10. iisstart.htm et iisstart.png sont les fichiers par défaut du site Web. La longueur des caractères du préfixe du nom de fichier n'atteint pas 9 caractères. , il n'y a donc pas de nom de fichier court. IIS10test.html est un fichier de site Web ajouté manuellement. La longueur du préfixe du nom de fichier atteint 9 caractères et le nom de fichier court correspondant est IIS10T~1.HTM. Selon cette fonctionnalité, nous pouvons accéder indirectement à son fichier correspondant en accédant au nom court du fichier.
Étant donné que la longueur des noms de fichiers courts est fixe (xxxxxx~xxxx), les attaquants peuvent directement forcer brutalement les noms de fichiers courts pour accéder aux fichiers correspondants.
Par exemple, il existe un fichier de sauvegarde de base de données backup_20180101.sql, et son nom de fichier court correspondant est backup~1.sql. Par conséquent, l’attaquant peut télécharger le fichier en craquant brutalement backup~1.sql sans déchiffrer le nom complet du fichier.
Le nom de fichier court IIS a les caractéristiques suivantes :
1 Seuls les six premiers caractères sont affichés directement, et les caractères suivants sont désignés par ~1. . Le numéro 1 peut également être incrémenté s'il existe plusieurs fichiers avec des noms de fichiers similaires (les 6 premiers chiffres du nom doivent être les mêmes et les 3 premiers chiffres du suffixe doivent être les mêmes
) ; 2. Le nom du suffixe ne peut avoir qu'un maximum de 3 chiffres, ce qui est redondant et tronqué, les fichiers longs de plus de 3 caractères généreront des noms de fichiers courts
3.
4. Les noms de fichiers longs contiennent plusieurs ". », utilisez le dernier « » dans le nom de fichier comme suffixe court du nom de fichier ;
5. Le préfixe du nom de fichier long/nom de dossier. la longueur des caractères est conforme à la plage de 0 à 9 et Aa à Zz et doit être supérieure ou égale à 9 caractères. Un nom de fichier court sera généré s'il contient des espaces ou d'autres caractères spéciaux, un fichier court sera généré malgré tout. de la longueur ;
Nous pouvons utiliser la méthode GET pour énumérer violemment les noms de fichiers courts sous IIS avec .net activé. La raison est que l'attaquant utilise les caractères génériques "*" et "?" une requête vers IIS Lorsque IIS reçoit un chemin de fichier contenant une requête "~", sa réponse est différente, c'est-à-dire que le code d'état HTTP renvoyé et le message d'erreur sont différents. Sur la base de cette fonctionnalité, un fichier disponible ou indisponible peut être distingué en fonction de la réponse HTTP. Comme le montre la figure ci-dessous, la différence dans les informations renvoyées par les différentes versions d'IIS :
Figure 4 IIS 5.0 ~ IIS 7.X, fichier court devinant les informations de réponse HTTP
L'image est une illustration des informations légales et illégales de réponse de devinette de fichier court IIS données par Soroush Dalili, le découvreur de cette vulnérabilité, dans son rapport de recherche :
L'accès à un nom de fichier court existant construit retournera 404 ;
L'accès à un nom de fichier court construit qui n'existe pas renverra 400 ;
Figure 5 Utilisation du processus de devinette du code d'état IIS
La méthode ci-dessus consiste à utiliser la méthode GET pour deviner à plusieurs reprises dans une version inférieure de l'environnement IIS + ASP.NET jusqu'à ce que le nom de fichier court soit deviné.
Cependant, Qianlimu Lab a vérifié dans l'environnement réel que dans les versions supérieures d'IIS (telles que : IIS 8.0/IIS 8.5/IIS 10.0), même si asp.net n'est pas installé, via les OPTIONS et méthodes TRACE Vous pouvez deviner avec succès . Les types de codes d'état HTTP renvoyés par ces deux méthodes sont légèrement différents des captures d'écran ci-dessus, mais ils constituent une autre façon de les utiliser.
2.2.2 Attaque par déni de service .Net Framework (risque secondaire)
Selon les recherches de Soroush Dalili, si un attaquant envoie un fichier .Net illégal dans la demande de nom de dossier, .NeFramework effectuera une recherche récursive dans tous les répertoires racine, consommant les ressources du site Web et provoquant des problèmes DOS. Microsoft estime que ce risque est récupérable sous DOS et sera modifié dans les versions ultérieures du SP ; il ne sera donc pas abordé ici.
3. Reproduction et exploitation de la vulnérabilité des fichiers courts IIS
3.1 Reproduction de la vulnérabilité des fichiers courts IIS
3.1.1 Construction de l'environnement de vulnérabilité
Installer IIS 10.0 par défaut basé sur Win 10 (APS.NET n'est pas installé)
Programme Java d'analyse des vulnérabilités des fichiers courts IIS (Java l'environnement doit être configuré (Variables)
3.1.2 Préparation au débogage de l'environnement de vulnérabilité
Une fois IIS installé avec succès, le répertoire intpub sera généré par défaut dans le répertoire du lecteur C. Le répertoire racine du site Web se trouve dans C:inetpubwwwroot. Vérifiez s'il existe un nom de fichier court dans le répertoire racine :
.Comme le montre l'image ci-dessus, le répertoire racine du site Web IIS 10.0 par défaut n'a pas de noms de fichiers courts, uniquement des fichiers htm et png par défaut, et la longueur du nom ne répond pas aux exigences pour générer des fichiers courts. Ce qui suit utilise l'analyseur de fichiers courts IIS pour détecter s'il existe une vulnérabilité de fuite d'informations sur les fichiers courts :
3.1.3 Reproduction de l'environnement de vulnérabilité
Manuellement créer des fichiers longs de site Web Nom "IIS10test.html", générer automatiquement le nom de fichier court correspondant "IIS10T~1.HTM"
Utilisez le scanner de fichiers courts IIS pour numériser à nouveau, et l'analyse a révélé qu'il existe une vulnérabilité de fichier court et a réussi à deviner le nom du fichier court : IIS10T.HTM via la méthode HTTP OPTIONS. Il existe d'autres méthodes HTTP qui peuvent être devinées avec succès.
La vérification a révélé qu'en plus de la méthode OPTIONS, la méthode HTTP
TRACE peut également deviner avec succès les noms de fichiers courts.
Analyse de devinette de la méthode OPTIONS
Parce que la méthode OPTIONS ci-dessus a demandé 196 fois pour deviner le nom de fichier court, si le la supposition est réussie, 404 sera renvoyée. Si la supposition échoue, 200 sera renvoyée. Il existe de nombreuses combinaisons échouées, donc ce qui suit analyse principalement comment la requête avec une supposition réussie peut obtenir le nom de fichier court IIS10T.HTM via les OPTIONS. méthode. Comme indiqué ci-dessous :Analyse de prédiction de la méthode TRACE
Le processus de deviner via la méthode TRACE est fondamentalement le même que ci-dessus, sauf que cette méthode HTTP Le code d'état renvoyé en cas d'échec de la tentative n'est pas 200, mais 501
3.
2 Vulnérabilité des fichiers courts IISExploiter1. profondeur Explosion pour deviner le nom complet du fichier Le nom de fichier court deviné via la vulnérabilité du fichier court IIS doit continuer à deviner le nom complet avant de pouvoir y accéder sur IIS, c'est-à-dire qu'IIS ne prend pas en charge accès aux noms de fichiers courts pour des raisons de sécurité. Voici plusieurs méthodes pour deviner le nom complet d'un fichier donné par Soroush Dalili :
Limites de vulnérabilité des fichiers courts IIS
Cette vulnérabilité Il existe plusieurs limitations :
1) Cette vulnérabilité ne peut déterminer que les 6 premiers caractères. Si les caractères suivants sont trop longs ou contiennent des caractères spéciaux, il est difficile de les deviner . 2) Si le nom du fichier lui-même est trop court (pas de nom de fichier court) et ne peut pas être deviné
3) Si les 6 premiers chiffres du nom de fichier contiennent des espaces, le nom de fichier court dans le Le format 8.3 sera complété et ne correspond pas au vrai nom du fichier
;
4) Si les 6 premiers caractères du nom du dossier sont pointés par ".", le scanner pensera qu'il s'agit d'un fichier au lieu d'un dossier, et éventuellement une fausse alarme apparaîtra ;
5) Ne prend pas en charge les noms de fichiers chinois, y compris les fichiers chinois et les dossiers chinois. Un caractère chinois équivaut à deux caractères anglais, donc plus de 4 caractères chinois généreront un nom de fichier court, mais IIS ne prend pas en charge la supposition chinoise.
5. Solution de vulnérabilité des fichiers courts IIS
5.1 Solution générale de réparation des vulnérabilités
1) CMD ferme le format de fichiers NTFS 8.3 support
Exemple : (1 signifie désactivé, 0 signifie activé)
Windows Server 2008 R2 :
Demande si la fonction de nom de fichier court est activée :fsutil 8requête dot3name
Désactivez cette fonction : fsutil 8dot3name set 1
Windows Server 2003 :
Désactivez cette fonctionnalité : fsutil behavior set Disable8dot3 1
Les commandes d'arrêt des différents systèmes sont légèrement différentes. Cette fonction est activée par défaut et n'a pas besoin d'être activée pour la plupart des utilisateurs.
2) Modifiez le registre pour désactiver la fonction de nom de fichier court
Touche de raccourci Win+R pour ouvrir la fenêtre de commande, entrez regedit pour ouvrir la fenêtre de registre
Trouvez le chemin :
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem, définissez la valeur de NtfsDisable8dot3NameCreation sur 1, 1 signifie ne pas créer de format de nom de fichier court
Une fois la modification terminée, vous devez redémarrer le système pour prendre effet
Remarque : cette méthode uniquement. Elle peut interdire la création de noms de fichiers au format NTFS8.3. Les noms de fichiers courts des fichiers existants ne peuvent pas être supprimés et doivent être copiés à nouveau avant de disparaître.
Les deux méthodes suivantes ne conviennent que pour atténuer la méthode GET, d'autres méthodes peuvent encore être devinées.
3) Désactiver l'extension du service Web - ASP.NET
4) Mettre à niveau netFramework vers la version 4.0 ou supérieure
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tout d'abord, allez sur le site officiel pour télécharger le progiciel et décompressez-le. Il est préférable de ne pas avoir de problème de chemin avec la configuration nginx chinoise. Sous Windows, le chemin du fichier peut être séparé par "\", "\\". ou le symbole "/". Mais "\" est le plus susceptible de causer des problèmes, alors essayez d'éviter de l'utiliser. N'ajoutez pas de chemin, sinon cela provoquerait une erreur. Le chemin du fichier de configuration est introuvable. Par exemple, si je le décompresse sur le lecteur e, la commande cmd localise le dossier où se trouve nginx.exe, cde:\worksoftware\. nginx-1.10.1 puis l'exécute. Tout d'abord, assurez-vous que le fichier nginx.conf n'a aucun problème avec la configuration. En fait, le travail le plus important et le plus principal de nginx est le fichier de configuration, et il n'y a rien d'autre.

iis ne peut pas être utilisé sous Linux car iis est un service Internet de base fourni par Microsoft basé sur l'exécution de Microsoft Windows. Il a été développé sous la plate-forme du système d'exploitation Windows, il est donc limité à son exécution sous le système d'exploitation Windows.

Comme nous le savons tous, lorsqu’un fichier est en cours d’utilisation, aucun autre processus ne peut y accéder/le modifier. Dans ce cas, lorsqu'un processus tente d'ouvrir un fichier, le système d'exploitation verrouille le fichier pour éviter qu'il ne soit modifié par un autre processus. « Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus » est un message d'erreur observé par de nombreux utilisateurs sur leurs ordinateurs Windows. Cette erreur est connue pour se produire dans différentes versions de WindowsOS et WindowsServer. Habituellement, ce message d'erreur est observé lors de l'utilisation de la commande Netsh sur le PC Windows de l'utilisateur. Une autre situation dans laquelle cette erreur se produit est lorsque vous essayez d'exécuter Internet Information Services (IIS) M.

Lorsque vous utilisez PHP pour le développement de sites Web, vous pouvez rencontrer des problèmes d’encodage de caractères. En particulier lorsque vous utilisez différents serveurs Web, vous constaterez peut-être qu'IIS et Apache gèrent le codage des caractères différemment. Lorsque vous utilisez IIS, vous constaterez peut-être que des caractères tronqués apparaissent lors de l'utilisation du codage UTF-8, mais lorsque vous utilisez Apache, tout fonctionne correctement sans aucun problème. Comment résoudre cette situation ?

Pour ouvrir un pool d'applications dans IIS : 1. Ouvrez le Gestionnaire IIS ; 2. Accédez au nœud "Pools d'applications" ; 3. Cliquez avec le bouton droit sur le pool d'applications cible et sélectionnez "Gérer" ; 4. Cliquez sur l'onglet "Paramètres avancés" ; . La configuration du pool d'applications peut être consultée et modifiée ici.

Solutions à l'échec du démarrage : 1. Vérifiez l'intégrité des fichiers système ; 2. Vérifiez l'occupation du port ; 3. Démarrez les services associés ; 5. Réinitialisez le système Windows ; . Vérifiez les autorisations des fichiers ; 8. Mettez à jour le système d'exploitation et les applications ; 9. Évitez d'installer trop de logiciels inutiles. 10. Sauvegardez régulièrement les données importantes. Introduction détaillée : 1. Vérifiez l'intégrité des fichiers système, exécutez les outils de vérification des fichiers système, vérifiez l'intégrité des fichiers système, etc.

La conversion d'un fichier HTML en URL nécessite un serveur Web, ce qui implique les étapes suivantes : Obtenir un serveur Web. Configurez un serveur Web. Téléchargez le fichier HTML. Créez un nom de domaine. Acheminez la demande.

Solution : 1. Vérifiez si le service IIS a été installé ; 2. Vérifiez les services dépendants ; 3. Vérifiez les conflits de ports. 4. Vérifiez les fichiers de configuration et les autorisations. 5. Réenregistrez les composants liés à IIS ;
