Phosphophyllite

情報系学部に通う雑魚学生の日常・進捗・疑問ブログ

【ksnctf】q12 Hypertext Preprocessor

CVE-2012-1823の問題でした。
問題ページを開くと「2012:1823:20:」に続けて現在時刻等がコロン区切りで表示されます。
「2012:1823:20」でggると
CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823) | 徳丸浩の日記
がヒットしました。

CGIの仕様として、クエリ文字列に等号を含めない場合は、クエリ文字列がCGIスクリプトコマンドライン引数として指定されます。

"-s"がソースコード表示、"-d"が設定値(php.ini)変更オプションとして悪用されます。
とりあえず "/index.php?-s"を叩くとphpコードが表示され、「このディレクトリ内にflagファイルがあるよ」とコメントにありました。
現在時刻の後ろの4つの数字は0-59の乱数のようです。

上記サイトを流し読んで、

allow_url_include=On
auto_prepend_file=php://input

を-dにて設定し直し、一緒に渡したPHPを実行させればいいようだったのでpythonで書きました。

ksnctf Hypertext Preprocessor Writeup

実行したらとれました。
一発で通っちゃったのでちょっとうれしい。