0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SECCON Beginners CTF 2023 Writeup

Last updated at Posted at 2023-06-06

概要

この記事は、先週末に実施されたSECCON Beginners CTF 2023のWriteUpです。

色々あって一気に書けないので、数日かけて解けた問題から少しずつ放出します。
キレイな・完答は作問者や上位勢のwriteupに任せますので、私なりの解いた道筋を簡単に記載していきます。

開催概要

なお、まだしばらくはサーバーにアクセスできるようです。
復習に使用させていただきます。

とりあえず、回答できた問題を中心に記載していきます。
記録・復習用に、回答できた問題には「回答済」、できなかった問題は「未回答」と記載しておきます。

結果

今回も1マンチームで参加し、
最終結果は、297/778 th、318 point でした。

ペネトレの修行とCTFを両立するの難しいですね・・・他にもやりたい事たくさんあるし・・・

score.png

score02.png

環境

Windows + Kalilinux
プログラムはすべてPython3
その他、各種ツール

welcome

Discodeのアナウンスを確認しましょう。

ctf4b{Welcome_to_SECCON_Beginners_CTF_2023!!!}

crypto

今回全然解けませんでした・・・しっかり復習します。

CoughingFox2(Beginner:未回答)


Conquer(easy:未回答)


Choice(medium:未回答)


switchable_cat(medium:未回答)


cooking(Hard:未回答)


pwnable

せめてbeginnerくらいはクリアしたかった・・・

poem(beginner:未回答)


rewriter2(easy:回答済)


Forgot_Some_Exploit(Easy:回答済)


flag

Elementary_ROP(medium:未回答)


driver4b(medium:回答済)


FLAG

No_Control(hard:回答済)


FLAG

misc

YARO(Beginner:ギリギリ未回答)

サーバーにマルウェアが混入している可能性があるので、あなたの完璧なシグネチャで探してください

nc yaro.beginners.seccon.games 5003

backup

nc yaro-2.beginners.seccon.games 5003

https://score.beginners.seccon.jp/api/download?key=beginners23%2FYARO.tar.gz
hash:3e8137a394a95756b0f8f8aee5265988f3122297

時間無いって言ってるのに、1問に時間かけすぎじゃい!!!!
と自分で自分を叱った問題です。

ncで接続した先で、実際にYARAルールを記載してやると、実行してくれるアプリが動いているようです。

とりあえずフラグのフォーマットはctf4b{と定義されているので、それを検出できるYARAルールを以下のように記述しました。

YARAルール1
rule NumberOne
{
meta:
desc = "Sonala"
weight = 10
strings:
$c = "ctf4b{"
condition:
all of them
}

その後、何を思ったのか・・・手動で残りの文字を特定していっていました。
流れとしては、文字数を確定し、各種文字種を確定、確定させた文字種から範囲を絞って文字を確定させる・・・・焦って手動でやるくらいなら、コード書いた方が早かったんじゃ・・・

1. 以下、大体の文字数を確定(28文字はエスパーです。)
rule flag {
    strings:
        $ident = /ctf4b{Y[0-9a-zA-Z_]{0,28}}/
    condition:
        all of them
}
2. くり返し範囲を文字種や文字範囲で少しずつ絞り、以下まで判明。
rule flag {
    strings:
        $ident = /ctf4b{Y3t_An0th3r_R34d_Opp0rtun1ty[0-9a-zA-Z_]{0,2}}/
    condition:
        all of them
}
3. 残りの正確な、文字範囲のくり返しの個数を特定
rule flag {
    strings:
        $ident = /ctf4b{Y3t_An0th3r_R34d_Opp0rtun1ty[0-9a-zA-Z_]{2}}/
    condition:
        all of them
}
FLAG
ctf4b{Y3t_An0th3r_R34d_Opp0rtun1ty}

polyglot4b(beginner:未回答)


shaXXX(easy:未回答)


drmsaw(medium:未回答)


polyglot4b2(medium:未回答)


treasure(hard:未回答)


web

Forbidden(beginner:回答済)

You don't have permission to access /flag on this server.

https://forbidden.beginners.seccon.games

https://score.beginners.seccon.jp/api/download?key=beginners23%2FForbidden.tar.gz
hash:018c1361937a789b327181c9a46ec574906c360c

提示されたURLへアクセスすると、flagファイルへのリンクが張ってあるのみ。
ただし、ただリンクを踏むだけだと403となりアクセスできません。

ソースコードのindex.jsを読んでみると、/flagで完全一致している文字列のURLのアクセスが拒否されています。
ですので、例えば/FLAGのように一部大文字にしてアクセスしてやれば、ブロックを回避できる上で実体は/flagへのアクセスとなります。

index.jsの抜粋
const block = (req, res, next) => {
    if (req.path.includes('/flag')) {
        return res.send(403, 'Forbidden :(');
    }
FLAG
ctf4b{403_forbidden_403_forbidden_403}

aiwaf(easy:回答済)

AI-WAFを超えてゆけ!! ※AI-WAFは気分屋なのでハックできたりできなかったりします。

https://aiwaf.beginners.seccon.games

https://score.beginners.seccon.jp/api/download?key=beginners23%2Faiwaf.tar.gz
hash:2ce11f780bbdae5509bd80f9b3ef9d7545951f9f
FLAG

double check(medium:未回答)


phisher2(medium:未回答)


oooauth(hard:未回答)


Reversing

Half(beginner:回答済)


FLAG

Three(easy:未回答)

FLAG

Poker(medium:回答済)


FLAG

Leak(medium:未回答)


Heaven(Hard:未回答)


今後の課題・所感

  • 急用ができてあまり参加できなかったですが、beginner問題すら解けていない分野がちらほらあるのがとても悔しいです。
  • pwnとCryptに弱いのが課題ですね・・・・

他の方のWriteUp

復習用。独断と偏見で特に有用と感じたWriteUpを載せておきます。

とても分かり易い解説配信でした。毎度のごとく、Cryptの解説・回答スピードがすさまじいです。

作問者WriteUp

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?