ぺんぎんさんのおうち

日本語勉強中のドイツ産ペンギンがいろんなことを書く

asisctf finals2017 [Write-up]

asisctffinals2017のWrite-upです.

Harekazeとして参加し, 1113点取って27位でした.

僕は5問解いて330点得ることができました.

 

 

 

CTF Survey (50)

終了数時間前に出題.

Googleフォームのアンケート答えるだけ.

 

V.I.R (18)

Descriptionに

Rules are always broken, but not this time! 

って書いてたのでRulesみたらあった.

 

Simple Crypto (31)

初日の寝る前にやってて, 起きたら問題が簡単化されてた.

key と enc が わかったので xor_str() に渡すだけ.

普通に出力しても意味不明だったので, 出力の最初の方みたら <89>って書いてた.

.png にリダイレクトしたら画像として表示されたのでフラグゲット.

  

df = open('flag.enc')
enc = df.read()

flag = xor_str(key * (len(enc) // len(key) + 1), enc).decode("hex")
print(flag)

Solverの主要な部分はこんな感じ.

Markdownじゃなくてごめんなさい.

 

問題のコードの中の, xor_str()の計算は len(key) > len(flag) を満たすようにしてるだけなのであまり気にしなくて良い.

zip(x, y)はどちらかがイテレートできなくなった時点でストップかかるようになってるので, スライスは必要ないのでは?って思った.

 

Dig Dug (29)

リンク飛ぶと

dig は Domain Information Groperの略で云々 って書いてたので調べた.

Windowsで言うところの nslookup に近いコマンドで, DNSに対してよく使うらしい.

www.atmarkit.co.jp

 

$ dig digx.asisctf.com

を叩くと

digx.asisctf.com の IPが 192.81.223.250 であることがわかるので, 逆引き(?)の

$ dig -x 192.81.223.250

を叩いたら

ANSWER SECTIONに airplane.asisctf.com と出たのでアクセス.

"フラグ欲しいならオフラインにしな"って言われ, Wi-fi接続切ったらフラグ出た.

 

ドメインの digx や, imgタグの alt="dig-x"がヒントになってた. 

 

 ASIS Secret Letter (202)

You don't need to pay attention to Description.

This problem's category is Stegano so that the files are images-file in high possibillity.

I know only a way to solve stegano, first of all, I execute "binwalk" command and I obtained tow directories from images.

Since these files' name are long, I called these A.JPG and B.PNG .

 

 1. You can find a text-file named 38, and it shows base64 encoded strings.

I decoded it twice.

💌 from ASIS with love, please find secret message and reply soon, powered by 👉 Stéganô 👈

:thinking_face:

hmmmmm.. Anyway, I searched Stéganô by unsing Google, I found Python module 

github.com

 

 

2. I've gotten tips from A.JPG so that next step is to use B.PNG.

On reffering above module's Tutorial. I tried to find FLAG.

 

lsbset.reveal("./B.PNG", generators.FUNCTION())

I executed reveal method changing generators function in order, finally 

lsbset.reveal("./B.PNG", generators.triangular_numbers()) 

this flag was embedded by triangular_numbers() algorithm but I'm not sure.

 

 

 

実は公式CTFの初Write-upです.

PwnとかRev問を解きたかったのですがやはりまだ難しいようでした.

Crypto問も解けるようになりたいですね, 数学力...

 

 

 

関係ないですがKOSEN-SECCONのエントリーが始まってたので申し込もうとしたらOffice365のアカウントが必要らしく詰みました.

パスワードがなぜか合わず, リセットしようとしたら管理者がそういう設定にしてないっぽくてrejectされました. はい.

どうしようかな(´・_・`)