はまやんはまやんはまやん

hamayanhamayan's blog

UECTF2022 Writeups

[forensic] Deleted

ディスクイメージのようなのでFTK Imagerで開いて探索する。
[unallocated space]を見ると0143にフラグが書かれたファイルを確認することができる。

[forensic] Discord 1

それっぽいフォルダを漁っていく。
Cacheフォルダが怪しい。file *をしてみると色々画像ファイルがあるように見て取れる。
f_00003aを開いてみるとフラグが書いてあった。

[forensic] Discord2

適当にUECTFが含まれるファイルを探してみると、/Local Storage/leveldb
strings -n 10 * | grep UECTFをしてみるとフラグが見つかった。

[misc] caesar

先頭から全探索しても問題なさそうだったのでそれで解いた。
caesar_source.pyを改造して以下のようにして解いた。

from string import ascii_uppercase,ascii_lowercase,digits,punctuation

def encode(plain):
  cipher=''
  for i in plain:
    index=letter.index(i)
    cipher=cipher+letter[(index+14)%len(letter)]
  return cipher

ascii_all=''
for i in range(len(ascii_uppercase)):
  ascii_all=ascii_all+ascii_uppercase[i]+ascii_lowercase[i]
letter=ascii_all+digits+punctuation
plain_text='UECTF{SECRET}'
cipher_text=encode(plain_text)
print(cipher_text)

res = '2LJ0MF0o&*E&zEhEi&1EKpmm&J3s1Ej)(zlYG'
ans = 'UECTF{'
while ans[-1] != '}':
    for ch in letter:
        c=encode(ans + ch)
        if res.startswith(c):
            ans += ch
            break
print(ans)

[misc] GIF1

GIFアニメの各frameを分解するとフラグが書かれた画像が取得できる。

[misc] redaction gone wrong 1

pdfminer/pdfminer.six: Community maintained fork of pdfminer - we fathom PDF
ここのpdf2txt.pyを使えば文字列をすべて抜いてこれる。
フラグも含まれる。

[misc] redaction gone wrong 2

「青い空を見上げればいつもそこに白い猫」のステガノグラフィー解析で
適当にフィルターをかけながら隠れている文字を見ていく。

[web] webapi

https://i5omltk3rg2vbwbymc73hnpey40eowfq.lambda-url.ap-northeast-1.on.aws/にアクセスがあるがSOPがあって、フラグの内容が得られていないようである。
Burp Suiteでアクセス履歴を見るとフラグがある。

[web] request-validation

/?q[]とやるとqに配列が送られてqをobjectにすることができる。

[crypto] RSA

RSAの復号処理を実装する問題。
以下のように実装した。

c = 40407051770242960331089168574985439308267920244282326945397
p = 1023912815644413192823405424909
q = 996359224633488278278270361951
e = 65537

import gmpy2
from Crypto.Util.number import inverse, long_to_bytes

d = gmpy2.invert(e,gmpy2.lcm(p-1,q-1))
m = pow(c,d,p*q)
print(long_to_bytes(m))