はじめての脆弱性調査
「高機能アクセス解析CGI」にアクセス解析結果を閲覧される脆弱性 - CNET Japan
Perlを使わなくなって久しいが、例によって暇なので調べてみた。
問題の脆弱性を報告したページはhttp://jvn.jp/jp/JVN07468800/index.html。
古いコードは検索で拾ってくる。
diffを取ってみると、まぁあちこち違いますが、ぱっと見ここが怪しい。
my $seed = $ipaddress.$remote_port.time.$ENV{'HTTP_USER_AGENT'};
my $seed = $ipaddress.$remote_port.time.$ENV{'HTTP_USER_AGENT'}.Data::Random::String->create_random_string(length=>'32', contains=>'alphanumeric');
後ろにランダムな文字列を取得する関数が追加されている。
要するに、管理者のIPアドレスと、ログインしたときのポートと、その正確な時間の3つさえわかればセッションハイジャックができる状態だったわけね。そう深刻でもなかったので、がっかりした。誰かがログインしているのを見れば、そこに割り込むことができるのだが、まー、そんな状況に至ることはほとんどないだろう。