2018年4月21日土曜日

ksnctf simple auth の解答をトレース 

Simple Auth
をトレースする。
自力で解きたいが、まだまだ力不足なのでしばらくは他の人のブログを参考にしています。

問題はこちら
http://ksnctf.sweetduet.info/problem/32

他の人のブログをみてみる
「\[strcasecmp()] simple authメモ - Namareba食べたい」
http://namareba.hatenablog.com/entry/2014/06/21/014412
?password[]=hoge
のように書き換えればよいと記載。
fiddlerなるツールで書き換えたらしい。
fiddlerは今ないので、一旦とばし。
https://github.com/jacobsoo/ksnctf-Challenges/tree/master/Simple-Auth
回答がかいてある。
----
import urllib
import urllib2
url = 'http://ctfq.sweetduet.info:10080/~q32/auth.php'
data = {
"password[]": "hello",
}
req = urllib2.Request(url, urllib.urlencode(data), headers={'Content-type': 'application/x-www-form-urlencoded', 'Accept' : 'text/plain'})
resp = urllib2.urlopen(req)
szPage = resp.read()
print szPage
----
このスクリプトを書いてauth.phpという名前で保存。
http://localhost/auth.php

コマンドで
php auth.php
を実行するもt、FLAGがでてこない。
どうやったら、上記のスクリプトがうまく動くかがわからない。
保留

http://orangetech.hateblo.jp/entry/2017/02/08/113447
「chromeデバッカで少し書き換えて、適当な文字列入れてsubmitするとFLAGが表示されます。」

chromeがないので、保留。

https://qiita.com/nana0723japan/items/56d668f170f6443b24c3
firebug
環境用意が必要そう。いったん保留。

http://imoimo.hatenadiary.com/entry/2017/02/17/161816
具体的な実行環境の情報なし


以下の方針のもと、調査を続行
http://ksnctf.sweetduet.info/q/32/auth.php
を一部書き換えて実行してみる。

疑問
どうやってphpを実行する?

centos6にphpをインストールして以下コマンドを実行してみた。
yum -y install php php-devel php-mbstring php-mysql php-mcry pt php-gd php-pear php-pecl-apc
chmod 755 auth.php
./php auth.php
auth.phpは問題文のsourceをコピペ

結果
ソースファイルが表示されるだけ。

一体全体何をすればいいのかなあ?
phpを実行する方法がなんかそもそも違っている気がする。

結局は、他ページを探すことで回答を得る。
curlコマンドで一発解決している事例あり。
http://blog.theo.com.tw/Writeups/ksnctf/ksnctf-32-Simple-Auth/


最終的には、以下のコマンドでフラグゲット
curl -X POST -F ' password="" ' http://ctfq.sweetduet.info:1
0080/~q32/auth.php
反省
phpは、もっと初歩的な知識を体系的に学ばないと他の人のサイト見ても使いこなせない。

0 件のコメント:

コメントを投稿