- [forensic] Deleted
- [forensic] Discord 1
- [forensic] Discord2
- [misc] caesar
- [misc] GIF1
- [misc] redaction gone wrong 1
- [misc] redaction gone wrong 2
- [web] webapi
- [web] request-validation
- [crypto] RSA
[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))