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.

AngstromCTF WriteUp from Beginner.

Posted at

Mariydiが解けたものだけ記載しています。
書いてないものは解けてないやつ。

Web

catch me if you can!

WebサイトにアクセスしてF12押して、見たら終わり。
image.png
image.png
Flag:

actf{y0u_caught_m3!_0101ff9abc2a724814dfd1c85c766afc7fbd88d2cdf747d8d9ddbf12d68ff874}

shortcircuit

とりあえずF12を押すと、30文字1セットにして並べ替えてるのがわかる。
image.png
image.png
こういう並べ替えは、紙で書くほうがわかりやすくていいよね。。。
PXL_20230427_143447535.jpg
あとはページ下部に書いてるフラッグっぽいものを持ってきて区切って並べ替える。

7e08250c4aaa9ed206fd7c9e398e2}actf{cl1ent_s1de_sucks_544e67ef12024523398ee02fe7517fffa92516317199e454f4d2bdb04d9e419ccc7

3: 7e08250c4aaa9ed206fd7c9e398e2}
0: actf{cl1ent_s1de_sucks_544e67e
2: f12024523398ee02fe7517fffa9251
1: 6317199e454f4d2bdb04d9e419ccc7

Flag:

actf{cl1ent_s1de_sucks_544e67e6317199e454f4d2bdb04d9e419ccc7f12024523398ee02fe7517fffa92517e08250c4aaa9ed206fd7c9e398e2}

directory

page0~4999まである。どこかにフラグがあると思うので、Pythonで全部なめる。ちゃんとアクセスしてるか心配だったから100ごとに出力させてる。
こういうちょっとしたプログラムを組むのは早くなったなって思う。
image.png

import requests

# source site(0.html)
url = 'https://directory.web.actf.co/'

# get data
def data_get():
    print('Data Getting......')
    # send request to source url.
    for i in range(5000):
        res = requests.get(url+str(i)+'.html')
        if res.text != 'your flag is in another file':
            print(res.text)
        if i%100 == 0:
            print(i)

if __name__=='__main__':
    response = data_get()
    

Flag:

actf{y0u_f0und_me_b51d0cde76739fa3}

Crypto

ranch

シーザー暗号。くるくる回して9文字目で読めるようになったからそれ。
image.png
Flag:

actf{lo0ks_like_we'll_h4ve_to_try_an0ther_dress1ng_5ef89b3a44901831}

Royal Society of Arts

RSA暗号の基礎問題。っていってもまだ基礎問題しか解けない。
n,e,cの他にpとqに関する式が与えられていたので、なんとかpかqだけにできないかな~ってごちゃごちゃしてた。昼飯から帰ってきたところでひらめいた。GG。

from Crypto.Util.number import long_to_bytes

n = 125152237161980107859596658891851084232065907177682165993300073587653109353529564397637482758441209445085460664497151026134819384539887509146955251284230158509195522123739130077725744091649212709410268449632822394998403777113982287135909401792915941770405800840172214125677106752311001755849804716850482011237
e = 65537
c = 40544832072726879770661606103417010618988078158535064967318135325645800905492733782556836821807067038917156891878646364780739241157067824416245546374568847937204678288252116089080688173934638564031950544806463980467254757125934359394683198190255474629179266277601987023393543376811412693043039558487983367289
p2q1 = 125152237161980107859596658891851084232065907177682165993300073587653109353529564397637482758441209445085460664497151026134819384539887509146955251284230125943565148141498300205893475242956903188936949934637477735897301870046234768439825644866543391610507164360506843171701976641285249754264159339017466738250
p1q2 = 125152237161980107859596658891851084232065907177682165993300073587653109353529564397637482758441209445085460664497151026134819384539887509146955251284230123577760657520479879758538312798938234126141096433998438004751495264208294710150161381066757910797946636886901614307738041629014360829994204066455759806614

tmp = p2q1 - p1q2
## (pq-p-2q+2) - (pq-2p-q+2) = p-q
# 

# (p-1)*(q-1) = pq-p-q+1
#             = n -(p+q) +1 ->まだ無理そう

# (p-1)*(q+1) = pq +p-q -1
#             = n +p-q -1 ->導出できる!
a = n + tmp -1

# (p-1)*(q+1) - (p-1)*(q-2) = (pq +p-q -1) - (pq-2p-q+2)
#                           = 3p-3 -> pが導出できそう!
p = (a - p1q2 +3 ) //3
q = n//p
## p GET!!!
#よく、Pythonの整数除算の特徴を忘れる。

# ここまできたらあとはkurenif先生に教えてもらったとおりよ!
phi = (p-1) * (q-1)
d = pow(e,-1,phi)
# d GET!!!

m = pow(c,d,n)
print(long_to_bytes(m))

Flag:

actf{tw0_equ4ti0ns_in_tw0_unkn0wns_d62507431b7e7087}

Rev

checkers

もらったファイルをなんとなーくstringsで見る。こういう、なんとなくこれかなってのはガチ一番最初にWriteUp見たとき意味分かんなかったけど、経験値なんだなって最近知る。
image.png
Flag:

actf{ive_be3n_checkm4ted_21d1b2cebabf983f}

Misc

meow

問題文にあるからそのまま打つだけ。

sanity check

Discordのチャンネルに書かれてる。

Admiral Shark

pcapファイルが配られる。
中身を見ていると、rawがどうのこうのって言い出したので、rawでなにかするのかな~と推測。
image.png
中身見てたらいきなり送るやでって言い出したから、その後のTCPストリームの中で一番でかいパケットをraw形式で保存
image.png
何のファイルかわからなかったのでLinuxで確認。どうやらZipアーカイブファイルらしい。
image.png
このままunzipで開いちゃえって思ったけどなんか開けなかった。これなんでだろ。いろいろ調べてると、7zなら開けるんじゃね?って記事があったので、やってみると展開できた。
image.png
中身のファイルを確認していくと、無事に発見できた。
image.png
Flag:

actf{wireshark_in_space}
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?