Vous pouvez recevoir des messages d’erreur lorsque vous parcourez ou essayez de déboguer une application ASP.NET après avoir installé la mise à jour de sécurité 887219 (MS05-004)

Résumé

Après avoir installé la mise à jour de sécurité MS05-004, puis vous accédez ou que vous essayez de déboguer des applications ASP.NET, vous pouvez rencontrer des erreurs. Cet article décrit les messages d’erreur différents que vous pouvez recevoir. Il propose également des solutions pour ces problèmes.

Symptômes

Après avoir installé la mise à jour de sécurité MS05-004, puis vous accédez ou que vous essayez de déboguer une application Microsoft ASP.NET dont l’URL contient une barre oblique (\), un des messages d’erreur suivants peut s’afficher :
Impossible de trouver la ressource.


Description : HTTP 404. La ressource recherchée (ou une de ses dépendances) a peut-être été supprimée, que son nom ait changé ou est temporairement indisponible. Vérifiez l’URL ci-après et assurez-vous qu’elle est correctement orthographiée.

Erreur lors de l’exécution du projet : Impossible de démarrer le débogage sur le serveur web. A pas pu démarrer ASP.NET ou ATL Server de débogage. Vérifiez que l’ASP.NET ou ATL server est actuellement installé sur le serveur.

Cause

Le problème se produit si l’URL spécifiée dans la métabase Microsoft Internet Information Services (IIS) contient une barre oblique.

Résolution

Pour résoudre ce problème, supprimez la barre oblique inverse à droite dans la métabase IIS pour l’URL spécifiée pour l’application Web concernée. Pour ce faire, utilisez une des méthodes suivantes.

Méthode 1 : Utiliser le Gestionnaire des services IIS

  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. Recherchez le répertoire %systemroot%\system32\inetsrv.
  3. À l’invite de commandes, tapez inetmgr pour ouvrir le Gestionnaire des services IIS.
  4. Cliquez droit sur le site Web de l’URL que vous souhaitez modifier, puis cliquez sur Propriétés.
  5. Si l’application concernée est un répertoire virtuel sous le site Web, cliquez sur l’onglet répertoire , puis supprimez la barre oblique inverse à droite du chemin d’accès spécifié dans la zone de texte chemin d’accès Local .

    Si l’application concernée se trouve dans le répertoire racine du site Web, cliquez sur l’onglet Répertoire de base et puis supprimez la barre oblique inverse à droite du chemin d’accès spécifié dans la zone de texte chemin d’accès Local .
  6. Cliquez sur Appliquer, puis cliquez sur OK.

Méthode 2 : Utiliser un script .vbs

  1. Utilisez le tp exemple de code suivant créer un script .vbs :
    Option Explicit
    Dim objWebService, objWebSite
    Dim objSite, objArgs, strServer
    Dim WshNetwork

    Set objArgs = WScript.Arguments

    If objArgs.Length = 1 Then
    strServer = objArgs(0)
    ElseIf objArgs.Length = 0 Then
    Set WshNetwork = CreateObject("WScript.Network")
    strServer = WshNetwork.ComputerName
    Else
    WScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"
    WScript.Quit
    End If
    WScript.Echo "Connecting to " & strServer

    Set objWebService = GetObject("IIS://" & strServer & "/W3SVC")

    For Each objWebSite in objWebService
    Set objSite = GetObject(objWebSite.AdsPath)
    If objSite.Class = "IIsWebServer" Then
    WScript.Echo objSite.AdsPath
    EnumVDir objSite, 1
    End If
    Next

    WScript.Echo "Done processing."

    Sub EnumVDir(objVDir, i)
    Dim objSubVDir, objDir
    Dim strNewPath

    For Each objSubVDir in objVDir
    If objSubVDir.Class = "IIsWebVirtualDir" Then
    Set objDir = GetObject(objSubVDir.AdsPath)

    If ((Right(objDir.Path, 1) = "\") and (Right(objDir.Path, 2) <> ":\")) Then
    WScript.Echo Space(i*3) & objDir.AdsPath
    WScript.Echo Space(i*3) & "Path = " & objDir.Path

    strNewPath = Left(objDir.Path, Len(objDir.Path) - 1)
    WScript.Echo Space(i*3) & "New Path = " & strNewPath

    objDir.Put "Path", strNewPath
    objDir.SetInfo
    End If

    EnumVDir objDir, i + 1
    End If
    Next
    End Sub


  2. À partir de la ligne de commande, exécutez le script .vbs. Pour ce faire, procédez comme suit :
    1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
    2. À l’invite de commandes, tapez :

      cscript [.vbsnom_fichier].

      Remarque : l’argument nom_fichier est un espace réservé pour le nom de votre script .vbs.
    3. Pour fermer l’invite de commandes, tapez exit.

Plus d'informations

Après avoir appliqué cette mise à jour de sécurité, ASP.NET vérifie plus strictes pour la validité à la fois des chemins d’accès physiques et des chemins d’accès virtuels requis.

Références

Pour plus d’informations sur la sécurité MS05-004, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

887219 MS05-004 : vulnérabilité de validation du chemin ASP.NET peut permettre l’accès non autorisé

Propriétés

ID d'article : 894670 - Dernière mise à jour : 18 févr. 2017 - Révision : 2

Commentaires