開発
WeChall — "Training: Programming 1 "
beko
今回は、wechallの問題を解こうと思います。
今回は、programmingの問題でTraining: Programming 1 というものをときます。
まず、ページに行くとこのようになっています。
この英語を意訳しますと、リンクに飛べと書いていてその後にそこで表示されたメッセージをhttp://www.wechall.net/challenge/training/programming1/index.php?answer=メッセージ
という感じに、変更して、 1.337 秒以内にそこにアクセスしなさいという感じです。
今回の問題に関しては、手動では間に合わないためexploitを書こうと思います
まずは、メッセージを取ってくるところからやります。
import urllib2 url = "http://www.wechall.net/challenge/training/programming1/index.php?action=request" responce = urllib2.urlopen(url) print responce.read()
こんな感じで書いてみました。これでアクセスできたと思ったら、レスポンスがこのように返ってきました。
Please login by sending your cookies in the HTTP Header.
これをみて、あーセッションの維持が必要なのかと思いました。んで、結構考えた結果
今回は、pythonのmechanizeというライブラリを使ってとこうと思いました。
それで書いたコードがこれです。
import mechanize br = mechanize.Browser() #br.set_debug_http(True) br.set_handle_robots(False) br.open("http://www.wechall.net/login") br.select_form(nr = 0) br["username"]="自分のユーザーネーム" br["password"]="自分のパスワード" br.submit() br.set_handle_robots(False) br.open("http://www.wechall.net/challenge/training/programming1/index.php?action=request") response = br.response() send_mes = "http://www.wechall.net/challenge/training/programming1/index.php?answer=" + response.read() br.set_handle_robots(False) br.open(send_mes) result = br.response() a=result.read() print a f=open('out.html',"w") f.write(a) f.close
こんな感じで書いてみました。
結果もこのようになりました。
今回といた問題はprogrammingさえ出来ればそう難しくはない問題でした。
exploitは書いたほうが良いのでできるだけexploitを書くようにしましょう!