2004-08-10
_ 東京アンダーグラウンド
昔よく行っていたアングラサイト?に行ってみた。
相変わらずな、雰囲気で懐かしい。
荒らし依頼が一杯あって、
ちょっとその中の一つのサイトに飛んでみた。
個人のサイトで、パッと見かなり手が込んでる。
掲示板だけでも4つぐらいあった。
メインページにはCGIの日記が表示されていた。
昔、大学生の頃、厨房ハッキングに興味を持っていた時期があって
CGIを見ると、どうもソースをチェックしたくなる。
まあ、見てみようと思って、その日記用のCGIのソースを見てみた。
上から見ていく。なんか懐かしい。
処理の流れは、昔の掲示板も、今の日記もほとんど変わらない。
が、、、、ここで愕然とする。
そこの部分のソースはこんな感じだ。
if($FORM{'action'} eq "pass") {
if ($FORM{'pass'} eq $pass) {&edit_html;}
else {&error(bad_pass);}
}
elsif($FORM{'action'} eq "resist") {
if ($FORM{'write'} eq "書き直し"){&edit2; &edit_html;}
else {&resist; &edit_html;}
}
あのー。$FORM{'action'}の値がresistなら
パスワードチェックなしで書き直しが出来るんですけど・・・
$FORM{'action'}ってクライアントが送る情報だから、いくらでも変更できる。
実際にローカルで検証してみると、パスワードチェックなしに
日記に書き直し、追記が出来た。
実際に誰かのサイトでやってみたいけど、、、、、
パスワードを盗んだと思われて警察沙汰になる恐れがあるから
やめておこう。
本当は違うんだけどね。
どれだけ技術が進歩しても、人が作るものって
バグがつきものだね。