본문 바로가기

CTF writeup

[2022 Pico CTF] Writeup

pico는 난이도가 정말 낮았다.

그냥 열기만 하면 flag가 있는 정도,,, 하나씩 보자!

 

[Web]

1. includes

 

picoCTF{1nclu51v17y_1of2_f7w_2of2_f4593d9d}

 

2. inspect HTML

 

picoCTF{1n5p3t0r_0f_h7ml_dd513514}

 

3. Local Authority

 

picoCTF{j5_15_7r4n5p4r3n7_6309e949}

 

3. Search source

 

 

 

[Crypto]

1. basic-mod1

각 숫자를 mod 37 연산하고 0-25는 알파벳 대문자, 26-35는 10진수, 36은 언더바로 변환해주면 flag를 얻을 수 있다.

 

문제: [ 128 63 131 198 262 110 309 73 276 285 316 161 151 73 219 150 145 217 103 226 41 255 ]

 

각각 모듈러 연산을 진행하면

17 26 20 13 3 36 13 36 17 26 20 13 3 36 34 2 34 32 29 4 4 33

 

이제 위의 숫자들로 문제에서 주어진 변환 규칙을 적용하면

R0UND_N_R0UND_8C863EE7이라는 값을 얻을 수 있음

(참고로 26~35 10진수 변환은

26→0 / 27→1 / 28→2 / ...... / 34 →8 / 35 →9

이렇게)

 

picoCTF{R0UND_N_R0UND_8C863EE7}

 

2. basic-mod2

문제: [ 350 372 192 354 139 337 67 311 392 338 241 414 180 277 379 294 128 117 250 404 336 350 386 ]

 

이번에는 mod 41 연산을 하는데 그 결과를 가지고 모듈러 역수를 찾아주고

1~26은 알파벳, 27~36은 십진수, 37은 언더바로 변환해주면 된다.

 

일단 mod 41 연산을 하고 아래의 사이트에서 역수를 찾아주었다.

28 14 22 30 18 32 30 12 25 37 8 31 18 4 37 6 33 34 31 34 36 28 29

문제에서 주어진 규칙대로 변환해주면

1nv3r53ly_h4rd_f6747912 라는 값을 얻을 수 있다.

 

picoCTF{1nv3r53ly_h4rd_f6747912}

 

3. credstuff

usernames.txt 파일에서 cultiris를 찾으면 378번째 줄이다.

passwords.txt 파일에서 동일한 줄을 찾고,

flag의 시작이 picoCTF이므로 확인해보면 ROT13으로 암호화된 것을 알 수 있고, 다시 복호화해주면 FLAG를 얻을 수 있다.

 

picoCTF{C7r1f_54v35_71M3}

 

4. morse-code

morse_chal.wav
2.43MB

 

 

모스부호를 해독해주는 사이트가 있는 걸로 아는데

나는 당시에 재생속도 느리게 해서 하나하나 찾았다,,ㅎ,,

 

picoCTF{wh47_h47h_90d_w20u9h7}  

 

5. rail-fence

rail-fence 암호화가 적용되었다.

4 rail로 돌려서 flag 획득~

 

picoCTF{WH3R3_D035_7H3_F3NC3_8361N_4ND_3ND_55228140}

 

6. substitution0

https://math.bab2min.pe.kr/substt

위의 사이트에서 문제에서 주어진 키를 가지고 복호화하면 flag를 얻을 수 있다.

picoctf{5ub5717u710n_3v0lu710n_aa1cc2b7}

 

7. substitution1

picoCTF{FR3QU3NCY_4774CK5_4R3_C001_B810DD84}

 

8. transposition-trial

문제: heTfl g as iicpCTo{7F4NRP051N5_16_35P3X51N3_VCDE4CE4}7

앞부분에 picoCTF가 들어갈 것이고

앞부분에 flag 같은 단어들이 있길래 이리저리 생각하다 보니

3 글자씩 잘라서 제일 뒤에 있는 글자를 앞으로 가져와서 붙이면 flag를 얻을 수 있다.

heT ⇒ The 이렇게!

 

The flag is picoCTF{7R4N5P051N6_15_3XP3N51V3_ECDE4C74}

 

picoCTF{7R4N5P051N6_15_3XP3N51V3_ECDE4C74}

 

9. Vigenere

rgnoDVD{O0NU_WQ3_G1G3O3T3_A1AH3S_e481bf5f}

 

비즈네르 암호 해독 사이트를 이용하였다.

https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx

문제에서 주어진 "CYLAB"를 키로 넣고 올려주면 flag를 얻을 수 있다.

 

picoctf{d0nt_us3_v1g3n3r3_c1ph3r_c481du5f}

 

 

[Reversing]

1. bloat.py

너무 보기가 힘들어서 정리해봤다.

결국 input이 happychance이면 true로 flag 파일을 읽어주길래 해당 값을 넣어주니 flag를 얻을 수 있었다.

 

picoCTF{d30bfu5c4710n_f7w_c47f9e9c}

 

2. file-run1

picoCTF{U51N6_Y0Ur_F1r57_F113_5578e314}

 

3. file-run2

인자로 Hello! 를 같이 주면 flag를 얻을 수 있다.

 

picoCTF{F1r57_4rgum3n7_981abfb5}

 

4. GDB Test Drive

문제에서 주어진 명령어를 그대로 따라가면 flag를 얻을 수 있다.

 

picoCTF{d3bugg3r_dr1v3_93b87433}

 

5. patchme.py

문제에서 주어진 코드를 보면 user_pw가 엄청나게 길어서 임의로 1234로 바꿔주었다.

cmd로 실행시켜 1234를 입력하면 flag를 얻을 수 있다.

picoCTF{p47ch1ng_l1f3_h4ck_4d5af99c}

 

6. Safe Opener

자바 파일이 주어졌다.

base64로 암호화된 encodedkey를 복호화해주면 flag를 얻을 수 있다.

picoCTF{pl3as3_l3t_m3_1nt0_th3_saf3}

 

7. unpackme

먼저 언패킹을 진행하고 내가 좋아하는 숫자를 입력하라고 하길래 IDA로 열어보았다.

picoCTF{up><_m3_f7w_ed7b0850}

 

8. unpackme.py

파이썬 파일이 주어지고 실행을 시켜야 할 것 같아서 colab에서 cryptography 모듈을 설치해주고 실행해보았다.

원래 주어진 코드로 실행하다 보면 패스워드를 입력하라는 문구가 출력되길래

flag 변수를 생성해서 print 해보았더니 flag가 함께 출력되었다.

 

picoCTF{175_chr157m45_8aef58d2}

'CTF writeup' 카테고리의 다른 글

[2022 MHSCTF] Writeup  (0) 2022.08.15
[2019 Codegate OPEN CTF] magic  (0) 2022.08.15
[2019 Codegate OPEN CTF] i_love_cookie  (0) 2022.08.15
[2019 Codegate OPEN CTF] Find flag  (0) 2022.08.15
[2019 Codegate OPEN CTF] proxy  (0) 2022.08.15