進行中の何か

主にIT系の調べたこと。やったことをまとめます。

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からとってきたのをそのまま流用しているのかなとも思ったり。。。