CTF Writeup SECCON 令和CTF

SECCON 令和CTFがありました。

SECCON 令和CTF

null

結果&感想

簡単に言うとダメだった。1問くらい…1問解きたかった悔しい…
以下、反省文

Misc 零は?

サーバにncで繋ぐと方程式が出てくるみんな大好き計算問題
100回計算が必要のようだ

$ nc zerois-o-reiwa.seccon.jp 23615
[1/100]
0=12-?
?=12
[2/100]
・
・
・

それで、作ったシェルスクリプトが以下
これ系問題は、昔作った類似問題のソルバを使い回しができて好き

方程式なのだけれど、正しい値を求めるためにxの値を1個ずつ増やす総当たり方式でつくった

これでいけそう…だと思ってた(実際、これで98問目までいった)


#!/bin/bash

exec 5<>/dev/tcp/153.120.18.15/23615

for I in {1..101}
do
  cat 0<&5>test.txt &
    sleep 3
    pkill cat
    Q=`cat test.txt|awk -F= '{print $2}'`
    echo Debug [${I}] $Q
    C=0
    while :
    do
      if [ 0 == `echo $Q|sed s/\?/$C/g |bc` ]
      then
        ANSWER=$C
        break
      fi
      : $((C++))
    done
    echo ${ANSWER} >&5
    echo Debug [${I}] $Q answer is $ANSWER
done

exit 0

ただ98問目…

[98] 17*53-23+23+60*92-59+38*34-19-63+39*5+71-67*75+39*4-97+72*24-60-80+41*8+81*40-3+33*84-16+7*5-28-96*78+48+12*89-45+77*74-29-80+75*37*56+51-43*33+78-25+86-38*59+4-58*65*7+19-49+26*45-25+67*9-90-83+12*99-33+4*88*64+2-31*32+79-87+77*25-50+56-4*28*28+8-82+33-18*26+41*5-58-8*35+79-4-?

これ、答えは 157961 なんだけど、総当たりで計算しているとタイムアップしちゃう。。
あぁこれシェルスクリプトの処理速度の限界かしらと思ってpythonで書き直そうとして無駄に時間を溶かしてしまった

よくよく考えると、最後が -? のパターンは総当たりすることなく自明なので、個別に処理を書けば回避できたと思う。惜しい。

Forensic 新元号発表

pdfが与えられて中身がこれ

20190430_forensic1.jpg

あぁ~伝統のQRコードが見えますねぇw

binwalkで調べる

$ binwalk newera.pdf

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PDF document, version: "1.5"
523           0x20B           Zlib compressed data, default compression
1322          0x52A           Zlib compressed data, default compression
8552          0x2168          Zlib compressed data, default compression
9827          0x2663          JPEG image data, JFIF standard 1.01
9857          0x2681          TIFF image data, big-endian, offset of first image directory: 8
52646         0xCDA6          JPEG image data, JFIF standard 1.01
52676         0xCDC4          TIFF image data, big-endian, offset of first image directory: 8
65317         0xFF25          Zlib compressed data, default compression
65788         0x100FC         Zlib compressed data, default compression
78688         0x13360         Zlib compressed data, default compression

それで画像を取り出す(binwalk使って取り出そうとしたけど上手くいかなくて、めんどくせぇddだ!ってなった)

$ cat newera.pdf | dd bs=1 skip=9827 >1.jpg

20190430_forensic2.jpg

おー見えた見えた。中央が令和で白抜きされているけど右半分のデータ部は生きてそうだからこの状態でも読めるかなと思ってた

QRazyBoxで調べる

このWebサービを使えばQRコードが結構破損してても読めるよ!

20190430_forensic3.jpg

あぁ~微妙に…微妙にフラグが見える…でタイムアップ(眠みがすごい)

他の方のwriteupを見ると、白抜きされた令和を埋める画像が入っていたみたいだから、それを合成すればいける気がしますね。。

20190430_forensic1.jpg (71.065 KB) kanata, 2019/05/01 10:49

20190430_forensic2.jpg (74.425 KB) kanata, 2019/05/01 10:51

20190430_forensic3.jpg (187.595 KB) kanata, 2019/05/01 11:00

クリップボードから画像を追加 (サイズの上限: 100 MB)