どうもみむらです。
久しぶりの SECCON CTF ということでチーム一同ノリノリではしゃぎながら参加してきました。
・・チームは “wasamusume” です。 なんだかんだで今年も旗、振ってます。
とりあえず私が解いたのは、
*x86アセンブラを読もう (100)
*捏造された契約書を暴け (300)
*箱庭XSSリターンズ(300)
*箱庭SQLiチャレンジ(100)
*879,394bytes (100)
の5つ。
いくつか勘で解いてしまったところがあるので、
ちゃんと説明出来る所のみを。
*x86アセンブラを読もう
----- 01361000 > 55 PUSH EBP 01361001 8BEC MOV EBP,ESP 01361003 83EC 08 SUB ESP,8 01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0 0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1 01361014 EB 09 JMP SHORT test.0136101F 01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] 01361019 83C0 01 ADD EAX,1 0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX 0136101F > 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8] 01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8] 01361025 7F 0B JG SHORT test.01361032 01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] 0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8] 0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX 01361030 ^EB E4 JMP SHORT test.01361016 01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 01361035 . 83E8 02 SUB EAX,2 01361038 . 8BE5 MOV ESP,EBP 0136103A . 5D POP EBP 0136103B . C3 RETN ... 01361040 > . 55 PUSH EBP 01361041 8BEC MOV EBP,ESP 01361043 51 PUSH ECX 01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0 0136104B 6A FF PUSH FF 0136104D E8 AEFFFFFF CALL test.01361000 01361052 . 83C4 04 ADD ESP,4 01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0136105B . 50 PUSH EAX 0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}\n" 01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>] 01361067 . 83C4 08 ADD ESP,8 -----
いきなりこれが出ると、「ウッ」とするかもしれません。私もしました。
・・某キャンプの読経か・・と。
でも冷静に見てみると結構簡単なんですね。
--- 01361000 > 55 PUSH EBP 01361001 8BEC MOV EBP,ESP 01361003 83EC 08 SUB ESP,8 01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0 0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1 01361014 EB 09 JMP SHORT test.0136101F 01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] 01361019 83C0 01 ADD EAX,1 0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX 0136101F > 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8] 01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8] 01361025 7F 0B JG SHORT test.01361032 01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] 0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8] 0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX 01361030 ^EB E4 JMP SHORT test.01361016 01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 01361035 . 83E8 02 SUB EAX,2 01361038 . 8BE5 MOV ESP,EBP 0136103A . 5D POP EBP 0136103B . C3 RETN --- 0136104B 6A FF PUSH FF 0136104D E8 AEFFFFFF CALL test.01361000 --- 0136105B . 50 PUSH EAX 0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}\n" 01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>] ---
もう、この辺だけ見ておけば大丈夫。
[EBP-4] とかいろいろと書かれていますが、
ぱっと見で Intel 記法だなーと思ったら、
右辺のものを左辺に移す(結果が左に入る)と言うことだけ考えながら見ていきます。
(AT&T 記法なら、左から右へ。)
・・・あとはこれをじっくり読むと、
def func(n): a = 0 b = 1 while b <=n: a += b b += 1 a -= 2 return a print("FLAG{%d}" % func(0xFF))
こんな感じに書き直せる訳ですね。
(・・ Write-up の醍醐味が全力でスキップされている気がするのは気のせい)
でもって、実行すると FLAG{32638} ということで。
・・・スキップされて分からない! って人は後で個別に連絡ください(汗
捏造された契約書を暴け
ディスクイメージが渡されるので、
この中のデータから捏造の証拠を出してね、というもの。
当初 MFT (Master File Table) を見ていまして、
$FILE_NAME の Create Time じゃないかと送信していましたがどうも通らず。
・・まさかーと思いながら “機密保持契約書.docx” ファイル内にあるファイルを見ていったところ、
中の jpg ファイルに Exif 情報として作成日時が乗っていまして、これが Flag.
・・・でも、 Exif としてファイルに書かれている情報よりも、
MFT の fnMFTModTime が “2012/5/23 04:56” になっている事の方が、
信頼性が高いと思うのですが、うーむ(
今回参加してみまして、結構楽しかったです。
ただ最近、片手間でCTF をする感じではマズいなーと思っていまして
(大会形式の CTF 以外はほぼやってませんし・・。)
ちょっと勉強なりを始めないとマズいかなと思ってます。
また、やはり思うのは
@mimura1133 おおうw バラバラであの強さとは流石w 今度はいっしょにワイワイやりましょうね
— alc@******** (@noritama_ususio) 2014, 7月 19
ということで、次こそはメンバー集まってワイワイやりたいですね!
(同じ大学のメンバーとは一緒にやりました。これはこれで楽しかったです。)
「勝ちに行くぞ-!」というような場合はあれですが、
基本的に SECCON は「みんなで楽しんでいこう-!」という感でやっているので
気の合う仲間と気楽にやっていきたいですね。
最後に、チームの他のメンバーが書いたブログへのリンクを貼り付けておきます。
あたがわさん:
http://blog.atgw.jp/archives/2865
hyt さん:
http://11haanyan24.com/seccon-2014-quals-online-japan%ef%bc%88write-up%ef%bc%89/
かーみーさん:
http://diary.carme-ln.net/2014/07/22/writeup-seccon-2014-online/
zip さん:
http://zipsan.pw/archives/305
『チームとしては正攻法ではないっぽい方法で解いたようなので』
・・ごめんなさい、私がこの問題のフラグを submit したあたりで察してください(
ではではー。
ピンバック: SECCON 2014 OnlineのWrite up | かーみーのチラ裏