Bourne Again Shell (kurz BASH) ist die beliebteste Shell-Implementierung unter GNU/Linux. Sie wurde 1980 geboren. Nach jahrzehntelanger Entwicklung hat sie sich von einem einfachen Terminal-Befehlszeileninterpreter zu einem entwickelt, der tief in GNU integriert ist System. Multifunktionale Schnittstelle.
Bash, eine Art Unix-Shell. Die erste offizielle Version wurde 1989 veröffentlicht. Ursprünglich war die Verwendung auf dem GNU-Betriebssystem geplant, sie kann jedoch auf den meisten Unix-ähnlichen Betriebssystemen ausgeführt werden, einschließlich Linux und Mac OS X v10.4, die es standardmäßig verwenden Hülse. Es wurde auch auf Cygwin und MinGW unter Microsoft Windows portiert oder ist als DJGPP-Projekt auf MS-DOS verfügbar. Es gibt auch Ports für Novell NetWare und Android.
Die aktuell von Bash verwendeten Umgebungsvariablen werden über Funktionsnamen aufgerufen. Die Ursache der Sicherheitslücke besteht darin, dass die Bash-Ausführung nicht beendet wird, nachdem die mit „(){“ definierten Umgebungsvariablen im Befehl ENV in Funktionen analysiert wurden Analysieren und führen Sie weiterhin Shell-Befehle aus. Der Hauptgrund dafür ist, dass es bei der Eingabefilterung keine strengen Grenzen gibt und keine legalisierten Parameterbeurteilungen vorgenommen werden.
Dieser Artikel erfasst und implementiert nur das Wiederauftreten von Sicherheitslücken:
1 Nutzlast
Theoretisch können Sie einen Bash-Befehl in die HTTP-Anfrage zur Remote-Befehlsausführung einfügen
3. Verwenden Sie den Prozess
, um auf das Ziel zuzugreifen() { :; }; echo; /bin/cat /etc/passwd
Ersetzen Sie den User-Agent-Wert durch die auszuführende Nutzlast Der Befehl
User-Agent ist nicht erforderlich
<br>
Das obige ist der detaillierte Inhalt vonBeispielanalyse des erneuten Auftretens einer Bash-Schwachstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!