PicoCTF 2023
Crypto
HideToSee
Recon
這一題比較像是Misc題目,比賽的時候想了很久都沒進展,賽後看了write up才覺得異常簡單,當初應該也是有往這方面想,但沒有用steghide
Exploit - Steghide + Atbash
- 先用steghide解密出隱藏的文檔
1
$ steghide extract -sf atbash.jpg - 用online tool解密

Reverse
Reverse
IDA
Flag: picoCTF{3lf_r3v3r5ing_succe55ful_8108250b}
Safe Opener 2
Strings search
Flag: picoCTF{SAf3_0p3n3rr_y0u_solv3d_it_ccb5525e}
timer
Use mobsf
Flag: picoCTF{t1m3r_r3v3rs3d_succ355fully_17496}
Ready Gladiator 0
- ???
picoCTF{h3r0_t0_z3r0_4m1r1gh7_a220a377}
Forensics
hideme
Use binwalk to observe that it should be a zip file.
1 | |
Change extension to zip file and extract it
Flag:

PcapPoisoning
String Search pico
Flag: picoCTF{P64P_4N4L7S1S_SU55355FUL_b1995216}
MSB
Reference: CTF-Misc-LSB
Flag was hidden in extracted text file: picoCTF{15_y0ur_que57_qu1x071c_0r_h3r01c_c02eeaac}
UnforgottenBits(TBD)
recon
1 | |
- probable corrupted section info

- just dump file system with
binwalk --dd=".*"(note since i am too lazy to optimize the command, it may used up all your disk space) - at offset 0x16500000 there is an ext4 file system, you can just open it with 7zip

- there’s something under his
/home, but no clue with it :P
FindAndOpen(TBD)
recon
- some strings are send directly via raw socket

- probably some base64 string? but no clue with it :P
1
2
3
4iBwaWNvQ1RGe1 AABBHHPJGTFRLKVGhpcyBpcyB0aGUgc2VjcmV0OiBwaWNvQ1RGe1IzNERJTkdfTE9LZF8= PBwaWUvQ1RGesabababkjaASKBKSBACVVAVSDDSSSSDSKJBJS PBwaWUvQ1RGe1
ReadMyCert
Base64 decode the certificate strings
Flag: picoCTF{read_mycert_4448b598}
rotation
rot-18
Flag: picoCTF{r0tat1on_d3crypt3d_4a3dcb4c}
FindAndOpen
- picoCTF{R34DING_LOKd_fil56_succ3ss_419835ef}
who is it
Recon
Strings search to find IP-liked strings - Sublime

whois 173.249.33.206- picoCTF{WilhelmZwalina}
UnforgottenBits
yone$ cat irclogs/**/*.log
[08:12] <yone786> Ok, let me give you the keys for the light.
[08:12] <avidreader13> I’m ready.
[08:15] <yone786> First it’s steghide.
[08:15] <yone786> Use password: akalibardzyratrundle
[08:16] <avidreader13> Huh, is that a different language?
[08:18] <yone786> Not really, don’t worry about it.
[08:18] <yone786> The next is the encryption. Use openssl, AES, cbc.
[08:19] <yone786> salt=0f3fa17eeacd53a9 key=58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 iv=7a12fd4dc1898efcd997a1b9496e7591
[08:19] <avidreader13> Damn! Ever heard of passphrases?
[08:19] <yone786> Don’t trust em. I seed my crypto keys with uuids.
[08:20] <avidreader13> Ok, I get it, you’re paranoid.
[08:20] <avidreader13> But I have no idea if that would work.
[08:21] <yone786> Haha, I’m not paranoid. I know you’re not a good hacker dude.
[08:21] <avidreader13> Is there a better way?
[08:22] * yone786 yawns.
[08:24] <yone786> You’re ok at hacking. I’m good at writing code and using it
[08:24] <avidreader13> What language are you writing in?
[08:26] <yone786> C
[08:26] <avidreader13> Oh, I see.
[08:26] <yone786> I’m glad you like it. I’m sure you wouldn’t understand half of what I was doing.
[08:28] <avidreader13> I understand enough, but I do wish you wouldn’t take so much time with it.
[08:28] <yone786> Sorry. Well, I wish you could learn some things.
[08:29] <avidreader13> But it’s an incredible amount of time you spend on it.
[08:29] <yone786> Haha, don’t take it like that.
1 | |
1 | |
- 解 /home/yone/gallery/bmp
steghide --extract -sf 7.bmpopenssl enc -d -aes-256-cbc -pbkdf2 -iv 7a12fd4dc1898efcd997a1b9496e7591 -S 0f3fa17eeacd53a9 -K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 -in les-mis.txt.enc -out ccc
General Skill
money-ware
Chat-GPT is your friend
Obviously is not Ransomware, so I asked the variant type of Ransomware.
1 | |
Flag: picoCTF{Petya}
repetitions
Just multiple base64 decode…
Flag: picoCTF{base64_n3st3d_dic0d!n8_d0wnl04d3d_a2d1b8b6}
Rules 2023
It’s kind a web type…
Check the page source and just search picoCTF{ then you got it.
Flag: picoCTF{h34rd_und3r5700d_4ck_cba1c711}
chrono
Basic linux command skill
1 | |
Flag: picoCTF{Sch3DUL7NG_T45K3_L1NUX_88865742}
Permissions
Very similar to chrono
Flag: picoCTF{uS1ng_v1m_3dit0r_8a15f6a3}
Special
1 | |
Specialer
$ echo "$(<./ala/kazam.txt)"picoCTF{y0u_d0n7_4ppr3c1473_wh47_w3r3_d01ng_h3r3_58131e2c}
Web
findme
- login and observe traffic
- and flag is base64-encoded in some redirecting page.
picoCTF{proxies_all_the_way_48c47a95}
MatchTheRegex
Observe page source found the script tag
1 | |
So, we just enter picoCTF to match the strings then we got the flag.
Flag:

findme
The point is observing redirection.
Use burp suite to observe every web page after you login.
Then you may find something strange such as id.
→ cGljb0NURntwcm94aWVzX2Fs
→ bF90aGVfd2F5XzQ4YzQ3YTk1fQ==
And these are base64 encoded string obviously.
Flag: picoCTF{proxies_all_the_way_48c47a95}
SOAP
- raw XXE injection
- picoCTF{XML_3xtern@l_3nt1t1ty_53488905}
More SQLi
- SQLite
username=&password='or'1'='1'--
Java Code Analysis
- find JWT secret key: ‘1234’
- sign JWT with role ‘Admin’
- update self role as ‘Admin’ since pdf acl get role from DB instead of JWT
- relogin to access pdf/5
- picoCTF{w34k_jwt_n0t_g00d_6e5d7df5}