KSNCTF #26 Sherlock Holmes
問題
考えたこと
英語がつらつら書いてあるのはドイルの『ボヘミアの醜聞』。昔読んだと思うけど記憶が消えた。
最初は I から III までざっと眺めておかしいところがないか探してみたけどそういうことではなさそうだった。
トップに戻ると index.pl
が動いてることに気づく。Perl の CGI というだけで脆弱性があるような気がする。
index.pl/foo.bar
で foo.bar
というファイルを開いてるっぽいので適当に探せば旗見つかる気がした。
試しに index.pl/flag.txt
見たら一発でファイル存在した。ちょろw
と思ったけど、旗取れなくて、まずは index.pl
本体を見ろと怒られた。
確かに flag.txt
が存在するであろうということは KSNCTF を今まで解いてきたからわかることであって、そんなメタではその場しのぎにしかならない。反省しました。
改めて index.pl
を読むと、 1行目に h@ck3d!
と書かれてる cracked.txt
が存在すれば旗取れるらしい。
どうしたもんかと思ったけど、「perl cgi 脆弱性」 でググると一発で出てきた。
open
文に末尾が |
の文字列を渡すと OS コマンドが実行されるというかなりダメそうな脆弱性があるということ。
echo "h@ck3d" > cracked.txt |
で旗取れた。
OS コマンドインジェクションこわい。
適当に rm -rf /
とかやっちゃうとどうなるのかなと思ったけど怖かったのでやってない。