Directory.php は任意のコードの実行を許可する | ScanNetSecurity
2024.04.26(金)

Directory.php は任意のコードの実行を許可する

[翻訳:関谷 麻美]
2002年3月11日

国際 海外情報
[翻訳:関谷 麻美]
2002年3月11日

概要
 Marcus S. Xenakis は、シェルコマンドをサポートする非常に優れた PHP スクリプトを開発した。

 "directory.php" スクリプトは "ls" コマンドに基づいており、渡されたパラメータに基づくディレクトリを読む。

 このスクリプトのセキュリティ問題は、ファイル・システム上にある任意のディレクトリの閲覧を許可してしまうことだ。さらに、";" のような危険な文字用のフィルターがないことで発生する任意コードの実行を許可する。これは、同じ作者が作成した Unix Manual PHP Script のバグと全く同じである。
Unix Manual PHP Script バグは最近、修正された。

詳細
 Marcus S. Xenakis PHP-Scripts は、シェルコマンドの単純コールを頻繁に使用する:
exec("ls -la $dir",$lines,$rc);

 これは、非常に簡単なプログラムだが、シェルコマンドのコールが引き起こす危険について取り組んでいない。

影響:
 HTTP-Daemon の権利で任意のコードを実行することが可能。

攻略手段:
 このスクリプトは"Unix Manual PHP Script" とは反対で、コマンドを入力する際にフォームを提供しない。理由は、あなたが実行したいと考えるパラメータおよびコマンドを含むスクリプトを直接、呼び出す必要があるからだ。
http://www.example.com/directory.php?dir=%3Bmore%20/etc/passwd
上記のURL は、Password File を示す。

http://www.example.com/directory.php?dir=%3Bps+-aux
上記のURL は、全ての動作プロセスを示す。

解決策:
 危険な文字(特に";")を取り除くフィルターを実装する。

ベンダーの対応:
 ベンダーと連絡をとった。

追加情報
BlueScreen がこの情報を提供した。

[情報提供:SecuriTeam]
http://www.securiteam.com/

《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×