task4233さん主催のお誕生日CTFであるtaskctfに参加しました。
いざやろうと思ったらパスワードも登録したメアドも思い出せず、結局新しく登録しなおすという情報管理能力の甘さを思い知らされるスタートとなりましたが、なんだかんだ楽しかったです。
メモしながら解いていったので、writeupと呼ぶにはお粗末なものですがひとまずその状態で公開します。
追々綺麗にしていくのでお許しください。
(UECTFのほうも忘れてないですよ)
taskctfのコンテストページを公開しました!https://t.co/SNp6cbxUwy
— task4233 (@task4233) November 17, 2022
taskctfは初心者〜中級者向けの趣味CTFです
今年は12/3(土) 0:00 JST 〜23:59 JSTの開催になります#taskctf https://t.co/T3X39bHnSb
また、今回は主催者自らwriteupを公開してくださっています。単純なwriteupだけでなく、作問意図も含めて公開してくださっているのは珍しいなと感じました。CTF初心者の私にとっては用語を知るきっかけにもなったのでありがたかったですね。
taskctfの作問者writeupと振り返り記事を公開しました。
— task4233 (@task4233) December 4, 2022
taskctf22 運営の振り返りhttps://t.co/9ZMx0YooT9
taskctf22 作問者writeuphttps://t.co/Tp7ObcvIJC#taskctf
環境
- Ubuntu 22.04.1 LTS
- Python 3.8.10
1 : welcome
1-1 : welcome
2019のwriteup探してくるだけ
2 : misc
2-1 : ransomware
シェルスクリプト、わけわからん文が冒頭にあってそれをbase64で復号してパイプ渡しでpython実行してるっぽいのでとりあえず先頭のわけわからん部分だけ復号してみる
ビンゴ。pythonのコードになった。
encrypted += chr(ord(ch) ^ key)
この逆をやればええんやな
keyがほしいのでc2サーバーのURLにアクセスしてみる
できねえ
a^bはaとbの排他的論理和
先頭はtaskctfのtなのでord("t")=116であることを使ってkeyの逆算を試みる
とりあえず2進数にする
おそらくkeyは17772
でもってencryptに対してkeyで排他的論理和のビット演算かければ戻るはず
あってた
with open("./taskctf_flag.txt.encrypted") as f:
encrypted=list(f.readline())
encrypted_ord=[ord(c_enc) for c_enc in encrypted]
decrypt="".join([chr(i ^ 17772) for i in encrypted_ord]).replace("\n","")
print("decrypt:",decrypt)
3 : osint
3-1 : ramen
ラーメンの画像。場所探せとのこと。美味しそう。
exiftool確認したけどない。位置情報入ってるパターンかと思ったんだけどな。
gogleで画像検索かける
4 : web
5 : tutorial
5-1 : submit_flag
コピペして出すだけ
5-2 : just_googlr_it
base64で暗号化されたtxtファイルくるからコマンドで復号
参考サイト
・base64 コマンド | コマンドの使い方(Linux) | hydroculのメモ
・【Linux】base64コマンドで暗号化と複合化を行う
try_python
txtファイルに書かれた数字の総和を求める
pythonでそれ用のコード書く
#memo---------
#txtファイルの数字を読み込んで総和求める
#-------------------
#nums_int=[]#txtファイルから数字を読んで格納するリスト
with open("./numbers.txt") as f:
data=f.readlines()
nums=data[0].split()#配列内でデータを区切る
nums2=data[0].split(" ")#こっちでやると長さが500になって末尾に空白入る
nums_int=[int(num) for num in nums]
print("sum:",sum(nums_int))
参考サイト
・Pythonでファイルの読み込み、書き込み(作成・追記)| note.nkmk.me
・Pythonでテキストファイルの数値を読み込む - なるぽのブログ