Easy#
WebDecode#
Solution
打開之後是個挺抽象的網站
隨便亂翻在 About 頁面 inspect 這坨文字就找到了
cGljb0NURnt3ZWJfc3VjYzNzc2Z1bGx5X2QzYzBkZWRfMjgzZTYyZmV9
這東西看起來就像 Base64,解決
picoCTF{web_succ3ssfully_d3c0ded_283e62fe}
Super SSH#
Solution
我不知道,就 ssh 使用教學(?
picoCTF{s3cur3_c0nn3ct10n_8969f7d3}
Scan Surprise#
Solution
阿怎麼下載下來 qrcode 掃出來就是 flag,哪招
picoctf{p33k_@_b00_19eccd10}
Binary Search#
Solution
kitty ssh 貌似有一些破病(?)會亂送 request,所以我換了 alacritty,總之是人腦二分搜。。。
picoCTF{g00d_gu355_6dcfb67c}
Verify#
Solution
進去之後長這樣
ctf-player@pico-chall$ ls
checksum.txt decrypt.sh files
題目有提供一個 sha256 checksum,files 裡面有一堆檔案,所以直接用
$ sha256sum files/* | grep 467a10447deb3d4e17634cacc2a68ba6c2bb62a6637dad9145ea673bf0be5e02
找到對的檔案然後用他給的 decrypt.sh
解密
ctf-player@pico-chall$ ./decrypt.sh files/c6c8b911
picoCTF{trust_but_verify_c6c8b911}
賓果
picoCTF{trust_but_verify_c6c8b911}
heap 0#
Solution
他給我們可以修改 0x5cd80e5342b0
的權限,但他把所謂的 save_var
bico 放在 pico 後面,所以只要輸入超過 32 bytes 的字串就可以覆蓋掉 bico 的值
Heap State:
+-------------+----------------+
[*] Address -> Heap Data
+-------------+----------------+
[*] 0x5cd80e5342b0 -> pico
+-------------+----------------+
[*] 0x5cd80e5342d0 -> bico
+-------------+----------------+
輕鬆拿到 flag
1. Print Heap: (print the current state of the heap)
2. Write to buffer: (write to your own personal block of data on the heap)
3. Print safe_var: (I'll even let you look at my variable on the heap, I'm confident it can't be modified)
4. Print Flag: (Try to print the flag, good luck)
5. Exit
Enter your choice: 2
Data for buffer: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
1. Print Heap: (print the current state of the heap)
2. Write to buffer: (write to your own personal block of data on the heap)
3. Print safe_var: (I'll even let you look at my variable on the heap, I'm confident it can't be modified)
4. Print Flag: (Try to print the flag, good luck)
5. Exit
Enter your choice: 3
Take a look at my variable: safe_var = hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
1. Print Heap: (print the current state of the heap)
2. Write to buffer: (write to your own personal block of data on the heap)
3. Print safe_var: (I'll even let you look at my variable on the heap, I'm confident it can't be modified)
4. Print Flag: (Try to print the flag, good luck)
5. Exit
Enter your choice: 4
YOU WIN
picoCTF{my_first_heap_overflow_0c473fe8}
picoCTF{my_first_heap_overflow_0c473fe8}
format string 0#
Solution
可以看到 source code 第 68 行
int count = printf(choice1);
他直接把 choice1
的內容塞進 printf
,那麼如果 choice1
剛好是一個 format string 的話他就會印出後面的東西,所以分別選 Gr%114d_Cheese
和 Cla%sic_Che%s%steak
他就會很開心的吐後面的 flag 出來
picoCTF{7h3_cu570m3r_15_n3v3r_SEGFAULT_63191ce6}
題外話,1337 食物名稱聽起來很難吃 :(
Unminify#
Solution
蛤又是簡單的 inspector
picoCTF{pr3tty_c0d3_622b2c88}
Time Machine#
Solution
❯ cat message.txt
This is what I was working on, but I'd need to look at my commit history to know why...
他說要看 commit history,好吧
❯ git log
commit 89d296ef533525a1378529be66b22d6a2c01e530 (HEAD -> master)
Author: picoCTF <ops@picoctf.com>
Date: Tue Mar 12 00:07:22 2024 +0000
picoCTF{t1m3m@ch1n3_186cd7d7}
picoCTF{t1m3m@ch1n3_186cd7d7}
Secret of the Polyglot#
Solution
題目給了一個 flag2of2-final.pdf
,打開之後裡面是半個 flag:
1n_pn9_&_pdf_724b1287}
可以看到 flag 裡面提示 png,用 file
偷看他到底是什麼
❯ file flag2of2-final.pdf
flag2of2-final.pdf: PNG image data, 50 x 50, 8-bit/color RGBA, non-interlaced
他果然是 png,把檔案 rename 成 .png
,打開就是前半段的 flag 了
btw 其實題目中的 polyglot 就是指一個檔案可以被多種格式解析的意思
picoCTF{f1u3n7_1n_pn9_&_pdf_724b1287}
interencdec#
Solution
題目給了一個 Base64 編碼的字串
❯ echo "YidkM0JxZGtwQlRYdHFhR3g2YUhsZmF6TnFlVGwzWVROclgya3lNRFJvYTJvMmZRPT0nCg==" | base64 -d
b'd3BqdkpBTXtqaGx6aHlfazNqeTl3YTNrX2kyMDRoa2o2fQ=='
~/tmp/ctf
❯ echo "d3BqdkpBTXtqaGx6aHlfazNqeTl3YTNrX2kyMDRoa2o2fQ==" | base64 -d
wpjvJAM{jhlzhy_k3jy9wa3k_i204hkj6}%
解完兩層 base64 後的東西顯然是凱薩密碼,隨便丟個線上工具就解出來了
picoCTF{caesar_d3cr9pt3d_b204adc6}
IntroToBurp#
Solution
題目給了一個 Base64 編碼的字串
❯ echo "YidkM0JxZGtwQlRYdHFhR3g2YUhsZmF6TnFlVGwzWVROclgya3lNRFJvYTJvMmZRPT0nCg==" | base64 -d
b'd3BqdkpBTXtqaGx6aHlfazNqeTl3YTNrX2kyMDRoa2o2fQ=='
~/tmp/ctf
❯ echo "d3BqdkpBTXtqaGx6aHlfazNqeTl3YTNrX2kyMDRoa2o2fQ==" | base64 -d
wpjvJAM{jhlzhy_k3jy9wa3k_i204hkj6}%
解完兩層 base64 後的東西顯然是凱薩密碼,隨便丟個線上工具就解出來了
picoCTF{caesar_d3cr9pt3d_b204adc6}