Vulnérabilité de configuration Nginx avec des paramètres de bloc d’alias incorrects

Certains serveurs avec Nginx restent vulnérables à la technique Nginx Alias ​​​​Traversal, qui a été proposée lors de la conférence Blackhat en 2018 et permet d’accéder aux fichiers et répertoires situés en dehors du répertoire racine spécifié dans la directive « alias ». Le problème apparaît uniquement dans les configurations avec une directive « alias » placée à l’intérieur d’un bloc « location », dont le paramètre ne se termine pas par un caractère « / », tandis que « alias » se termine par « / ».

Certains serveurs avec Nginx restent vulnérables à la technique Nginx Alias ​​​​Traversal, qui a été proposée lors de la conférence Blackhat en 2018 et permet d'accéder aux fichiers et répertoires situés en dehors du répertoire racine spécifié dans la directive "alias".

Le problème vient de fait que les fichiers pour les blocs avec la directive alias sont donnés en attachant le chemin demandé, après l’avoir mis en correspondance avec le masque de la directive location et en supprimant la partie du chemin spécifiée dans ce masque. Pour l’exemple de configuration vulnérable ci-dessus, un attaquant peut demander le fichier « /img../test.txt » et cette requête correspondra au masque spécifié à l’emplacement « /img », après quoi la queue restante « ../ test.txt » sera attaché au chemin de la directive d’alias « /var/images/ » et par conséquent le fichier « /var/images/../test.txt » sera demandé. Ainsi, les attaquants peuvent accéder à n’importe quel fichier dans le répertoire « /var », pas seulement les fichiers dans « /var/images/ », par exemple, pour télécharger le log nginx, vous pouvez envoyer la requête « /img../log/nginx / accès.log ». Dans les configurations où la valeur de la directive alias ne se termine pas par un caractère « / » (par exemple, « alias /var/images; »), l’attaquant ne peut pas passer au répertoire parent, mais peut demander un autre répertoire dans /var dont nom commence par spécifié dans la configuration. Par exemple, en demandant « /img.old/test.txt », vous pouvez accéder au répertoire « var/images.old/test.txt ».

Une analyse des référentiels sur GitHub a montré que les erreurs de configuration nginx à l’origine du problème se retrouvent toujours dans les projets réels. Par exemple, l’existence d’un problème a été détecté dans le backend du gestionnaire de mots de passe Bitwarden et pourrait être utilisé pour accéder à tous les fichiers du répertoire /etc/bitwarden (les requêtes pour /attachments ont été émises depuis /etc/bitwarden/attachments/), y compris la base de données qui y est stockée avec les mots de passe « vault.db », certificat et logs, pour lesquels il suffisait d’envoyer des requêtes « /attachments../vault.db », « /attachments../identity.pfx », « /attachments ../logs/api.log », etc.

Nos récents projets

Nouveau site "one page" développé par note équipe alsacienne

Nouveau site développé par notre équipe

Création et développement d'un site web "vitrine".

Ydex It -développement site Web

Changement de design et mise à niveau d'un site web "portfolio" .

 Artisan Photographe  Stephane Escaich