WhiteHat WarGame2.0
久々にCTFを学ぼうと思い、何かないかなと探して出会った
WhiteHat Wargame2.0をやりました!
https://wargame.whitehat.vn/
# 本当は違うものをするはずだったのに間違えた。
解いたやつのまとめ。
web01
ログインIDとPasswordを入力する画面が現れる。
適当にID : test PW : testで入力するとadminでない旨が表示される。
開発者ツールで見ているとSet-Cookieでuser=ユーザ名のCookieが払い出されている。
てなわけでCookieのユーザ名部分をadminに変えて終了!
# curl http://web001-chal03.wargame.whitehat.vn/index.php -H "Cookie: user=admin" <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <link rel='stylesheet' type='text/css' href='login.css'> <title>Wargame</title> </head> <body> <div class=form> <center>Flag: don't_believe_cookies_at_all</center> </div> </body> </html> <!--test/test--> # echo -n "don't_believe_cookies_at_all" | openssl sha1 (stdin)= 92b2bc2f657574ab3481ebcb6705c36079b3e6d7
よってflagはWhiteHat{92b2bc2f657574ab3481ebcb6705c36079b3e6d7}
For01
LSB.pngが与えられる。
LSBって書いてあるからLSBを抽出するとdocxファイルがゲットできるけど破損しているといわれて開けない。
そこで詰まった。
For02
accesslogから攻撃者のIPアドレスとリクエスト数をこたえる問題
アクセスログを確認したら明らかに192.168.1.1から攻撃がきていたので犯人はこのIPに確定!
192.168.1.1 - - [21/Jan/2017:21:08:39 +0700] "GET /corporation/admin/controller/search/ HTTP/1.1" 500 185 "http://192.168.1.5/corporation/" "(select(0)from(select(sleep(4)))v)/*'+(select(0)from(select(sleep(4)))v)+'\"+(select(0)from(select(sleep(4)))v)+\"*/"
あとは集計して完了!
# cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn 41326 192.168.1.1 1553 192.168.1.67 795 192.168.1.6 774 192.168.1.22 615 192.168.1.3 473 192.168.1.222 56 192.168.1.10 53 ::1 5 192.168.1.123 # echo -n "192.168.1.1;41326" | openssl sha1 (stdin)= 72f88f73b399453997d84d328edb9d8333e4f0f6
flagはWhiteHat{72f88f73b399453997d84d328edb9d8333e4f0f6}
For03
Catch_me.pcapngファイルが与えられる。
さっそくWiresharkで開くとHTTP通信を行っていることがわかる。
そこで200 OKで応答しているファイルを見るといかにもな名前のFlag.zipとSercret.docxが見つかる。
Flag.zipはパスワードがかかっていたのでひとまずSercret.docxを開く。
すると白抜きで以下の文字が書かれている。
Do the best, the rest will come! Pass: md5{G00dm4n}
md5値を計算し、その値でzipを展開。
# echo -n "G00dm4n" | md5sum 9fa874957d489cd6246bcf2569affd98 -
すると何やら悟空の画像が入っているのみ。
青い空を見上げればいつもそこに白い猫というツールに突っ込むと
jpgのファイルの最後に文字列が余分に追加されていることを確認。
The flag is : Simple_Network_Forensic
あとはSHA-1計算して
# echo -n "Simple_Network_Forensic" | openssl sha1 (stdin)= 5fa814b2e92ea59d24e60b2728c5485e511b1147
flagはWhiteHat{5fa814b2e92ea59d24e60b2728c5485e511b1147}
For06
CTF.pcapngというファイルが入っている。
今回もHTTP通信を行っており、シナリオ的にも何か重要なファイルをアップロードしたとのこと。
なのでPOST通信したファイルの内容を取得。
CTF.pngとHint.pngが手に入る。 Hint.pngを見るとステガノグラフィーと記載されている。
なのでCTF.pngを先ほどのツールに突っ込むとrarファイルが隠されているのがわかる。
けどパスワードがわからない。。。
ほかにパスワードのやり取りをしていなさそうだしヒントもない!
CTF.pngをみると「one2 three4 five6」とあり、
もしやと思って打った「244466666」が正解でした。
# john the ripperも試していたけどこっちが先にとけた
中に入っていたF1Ag.txtの内容はCTF{F043n51c_1n51d3_P1ctu43}
これがflagだと思ったのだけど「_」は通らないといわれ
sha1に変換したが通らず。。。。
結局は{}の中の内容のみをsha1変換すればOKだった。
# echo -n "F043n51c_1n51d3_P1ctu43" | openssl sha1 (stdin)= f79d37831380c0964f93c56d6d047444667db3b8
flagはWhiteHat{f79d37831380c0964f93c56d6d047444667db3b8}
# この問題ってどこかのCTFからとってきたのをそのまま流用しているのかなとも思ったり。。。