web-dev-qa-db-ja.com

(){:;}; / bin / bashで始まるHTTPリファラーが標的とする脆弱性

Apacheエラーログのリファラーフィールドで、このコードに続いて、ウェブからペイロードをダウンロードして実行するいくつかのbashコマンドを見つけました。この攻撃は、コマンド名を空の関数本体(){ :; }の関数名に変換することで機能するように見えます。

これは明らかにbashコマンドインジェクションを実行しようとしています。この攻撃に対して脆弱なサーバー、構成、またはモジュールは何ですか?

23
Kylos

これはShellshockバグを対象としています(バグには 自分のタグ も含まれています)。

OpenBSH sshdのForceCommand機能、Apacheのmod_cgiおよびmod_cgidモジュールを含むベクターで示されるように、GNU Bash 4.3は環境変数の値の関数定義の後に後続文字列を処理します。これにより、リモートの攻撃者が巧妙な環境を介して任意のコードを実行できます。 HTTPサーバー、不特定のDHCPクライアントによって実行されるスクリプト、および環境の設定がBash実行から特権境界を越えて発生するその他の状況。

影響を受けるのは、脆弱なBashバージョンを実行するシステムと、攻撃者が環境変数を挿入する方法です。最もよく知られているケースは、リクエストから特定の環境変数を自動的に設定するApacheです。 Bash CGIは必要ありません。広範なリストについては、 Shell Shock Exploitation Vectors に関するこの記事を参照してください。

この攻撃から防御するには、Bashを更新する必要があります。 Bashのバージョンが脆弱かどうかをテストするには、 @ EliahKaganの素晴らしい答え から次の行を実行します。

x='() { :;}; echo VULNERABLE' bash -c :

詳細については、 Shellshock Bashのバグについて知っておく必要のあるすべてのもの または 対応するCVE を参照してください。

36
Beat

リモートコマンド実行ペイロードのように見えます。リモートコマンド実行の脆弱性は、Webサーバーユーザーと同じ権限を持つシステムコマンドを実行するために使用されます。サーバーの完全な侵害につながります。詳細については、これに関するowaspの記事を参照してください。

0
haseeb