sekai013's blog

JavaScriptとかを勉強する

KSNCTF #26 Sherlock Holmes

問題

ksnctf - 26 Sherlock Holmes

考えたこと

英語がつらつら書いてあるのはドイルの『ボヘミアの醜聞』。昔読んだと思うけど記憶が消えた。

www.221b.jp

最初は I から III までざっと眺めておかしいところがないか探してみたけどそういうことではなさそうだった。

トップに戻ると index.pl が動いてることに気づく。PerlCGI というだけで脆弱性があるような気がする。
index.pl/foo.barfoo.bar というファイルを開いてるっぽいので適当に探せば旗見つかる気がした。
試しに index.pl/flag.txt 見たら一発でファイル存在した。ちょろw

と思ったけど、旗取れなくて、まずは index.pl 本体を見ろと怒られた。
確かに flag.txt が存在するであろうということは KSNCTF を今まで解いてきたからわかることであって、そんなメタではその場しのぎにしかならない。反省しました。

改めて index.pl を読むと、 1行目に h@ck3d! と書かれてる cracked.txt が存在すれば旗取れるらしい。
どうしたもんかと思ったけど、「perl cgi 脆弱性」 でググると一発で出てきた。

4-1. ファイルオープン時のパスにご用心

open 文に末尾が | の文字列を渡すと OS コマンドが実行されるというかなりダメそうな脆弱性があるということ。
echo "h@ck3d" > cracked.txt | で旗取れた。

OS コマンドインジェクションこわい。
適当に rm -rf / とかやっちゃうとどうなるのかなと思ったけど怖かったのでやってない。