CTF Writeup SECCON 令和CTF » 履歴 » バージョン 1
kanata, 2025/04/13 15:29
| 1 | 1 | kanata | # CTF Writeup SECCON 令和CTF |
|---|---|---|---|
| 2 | |||
| 3 | SECCON 令和CTFがありました。 |
||
| 4 | |||
| 5 | {{rawhtml(<blockquote class="embedly-card"><h4><a href="http://score-reiwa.seccon.jp/">SECCON 令和CTF</a></h4><p>null</p></blockquote><script async src="//cdn.embedly.com/widgets/platform.js" charset="UTF-8"></script>)}} |
||
| 6 | |||
| 7 | {{toc}} |
||
| 8 | |||
| 9 | # 結果&感想 |
||
| 10 | |||
| 11 | 簡単に言うとダメだった。1問くらい…1問解きたかった悔しい… |
||
| 12 | 以下、反省文 |
||
| 13 | |||
| 14 | # Misc 零は? |
||
| 15 | |||
| 16 | サーバにncで繋ぐと方程式が出てくるみんな大好き計算問題 |
||
| 17 | 100回計算が必要のようだ |
||
| 18 | |||
| 19 | ``` |
||
| 20 | $ nc zerois-o-reiwa.seccon.jp 23615 |
||
| 21 | [1/100] |
||
| 22 | 0=12-? |
||
| 23 | ?=12 |
||
| 24 | [2/100] |
||
| 25 | ・ |
||
| 26 | ・ |
||
| 27 | ・ |
||
| 28 | ``` |
||
| 29 | |||
| 30 | それで、作ったシェルスクリプトが以下 |
||
| 31 | これ系問題は、昔作った類似問題のソルバを使い回しができて好き |
||
| 32 | |||
| 33 | 方程式なのだけれど、正しい値を求めるためにxの値を1個ずつ増やす総当たり方式でつくった |
||
| 34 | |||
| 35 | これでいけそう…だと思ってた(実際、これで98問目までいった) |
||
| 36 | |||
| 37 | ```bash |
||
| 38 | |||
| 39 | #!/bin/bash |
||
| 40 | |||
| 41 | exec 5<>/dev/tcp/153.120.18.15/23615 |
||
| 42 | |||
| 43 | for I in {1..101} |
||
| 44 | do |
||
| 45 | cat 0<&5>test.txt & |
||
| 46 | sleep 3 |
||
| 47 | pkill cat |
||
| 48 | Q=`cat test.txt|awk -F= '{print $2}'` |
||
| 49 | echo Debug [${I}] $Q |
||
| 50 | C=0 |
||
| 51 | while : |
||
| 52 | do |
||
| 53 | if [ 0 == `echo $Q|sed s/\?/$C/g |bc` ] |
||
| 54 | then |
||
| 55 | ANSWER=$C |
||
| 56 | break |
||
| 57 | fi |
||
| 58 | : $((C++)) |
||
| 59 | done |
||
| 60 | echo ${ANSWER} >&5 |
||
| 61 | echo Debug [${I}] $Q answer is $ANSWER |
||
| 62 | done |
||
| 63 | |||
| 64 | exit 0 |
||
| 65 | ``` |
||
| 66 | |||
| 67 | ただ98問目… |
||
| 68 | |||
| 69 | ``` |
||
| 70 | [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-? |
||
| 71 | ``` |
||
| 72 | |||
| 73 | これ、答えは 157961 なんだけど、総当たりで計算しているとタイムアップしちゃう。。 |
||
| 74 | あぁこれシェルスクリプトの処理速度の限界かしらと思ってpythonで書き直そうとして無駄に時間を溶かしてしまった |
||
| 75 | |||
| 76 | よくよく考えると、最後が -? のパターンは総当たりすることなく自明なので、個別に処理を書けば回避できたと思う。惜しい。 |
||
| 77 | |||
| 78 | |||
| 79 | # Forensic 新元号発表 |
||
| 80 | |||
| 81 | pdfが与えられて中身がこれ |
||
| 82 | |||
| 83 |  |
||
| 84 | |||
| 85 | あぁ~伝統のQRコードが見えますねぇw |
||
| 86 | |||
| 87 | binwalkで調べる |
||
| 88 | |||
| 89 | ``` |
||
| 90 | $ binwalk newera.pdf |
||
| 91 | |||
| 92 | DECIMAL HEXADECIMAL DESCRIPTION |
||
| 93 | -------------------------------------------------------------------------------- |
||
| 94 | 0 0x0 PDF document, version: "1.5" |
||
| 95 | 523 0x20B Zlib compressed data, default compression |
||
| 96 | 1322 0x52A Zlib compressed data, default compression |
||
| 97 | 8552 0x2168 Zlib compressed data, default compression |
||
| 98 | 9827 0x2663 JPEG image data, JFIF standard 1.01 |
||
| 99 | 9857 0x2681 TIFF image data, big-endian, offset of first image directory: 8 |
||
| 100 | 52646 0xCDA6 JPEG image data, JFIF standard 1.01 |
||
| 101 | 52676 0xCDC4 TIFF image data, big-endian, offset of first image directory: 8 |
||
| 102 | 65317 0xFF25 Zlib compressed data, default compression |
||
| 103 | 65788 0x100FC Zlib compressed data, default compression |
||
| 104 | 78688 0x13360 Zlib compressed data, default compression |
||
| 105 | ``` |
||
| 106 | |||
| 107 | それで画像を取り出す(binwalk使って取り出そうとしたけど上手くいかなくて、めんどくせぇddだ!ってなった) |
||
| 108 | |||
| 109 | ``` |
||
| 110 | $ cat newera.pdf | dd bs=1 skip=9827 >1.jpg |
||
| 111 | ``` |
||
| 112 | |||
| 113 |  |
||
| 114 | |||
| 115 | おー見えた見えた。中央が令和で白抜きされているけど右半分のデータ部は生きてそうだからこの状態でも読めるかなと思ってた |
||
| 116 | |||
| 117 | [QRazyBox](https://merricx.github.io/qrazybox/)で調べる |
||
| 118 | |||
| 119 | >このWebサービを使えばQRコードが結構破損してても読めるよ! |
||
| 120 | |||
| 121 |  |
||
| 122 | |||
| 123 | あぁ~微妙に…微妙にフラグが見える…でタイムアップ(眠みがすごい) |
||
| 124 | |||
| 125 | 他の方のwriteupを見ると、白抜きされた令和を埋める画像が入っていたみたいだから、それを合成すればいける気がしますね。。 |