6001

print('Hello')

6002

print('Hello', 'World')

6003

print('Hello')
print('World')

6004

print("'Hello'")

6005

print('"Hello World"')

6006

print('\"!@#$%^&*()\'')

6007

print('\"C:\\Download\\\'hello\'.py\"')

6008

print('print(\"Hello\\nWorld\")')

6009 

i = input()
print(i)

6010

i = input()
i = int(i)
print(i)

 

6011

i = input()
i = float(i)
print(i)

6012

i = input()
h = input()

i = int(i)
h = int(h)

print(i)
print(h)

6013

i = input()
h = input()

print(h)
print(i)

6014

i = input()
i = float(i)
print(i)
print(i)
print(i)

6015

i, h = input().split()
i = int(i)
h = int(h)
print(i)
print(h)

6016

i, h = input().split()
print(h, i)

6017

i = input()
print(i, i, i)

6018

i, h = input().split(':')
print(i, h, sep=':')

6019

y, m, d = input().split('.')
print(d, m, y, sep='-')

 

문제에 접속하여 view source에 들어가보면 위 사진과 같은 소스코드가 나온다.

소스코드를 보면 몇가지 사실을 알 수 있는데

1. SetCookie 함수로 user_lv 쿠키를 1로 설정함.

2. user_lv 쿠키값을 확인해서 숫자가 아니면 user_lv 쿠키값을 1로 설정함

if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;

3. user_lv cookie 값이 4보다 크거나 같으면 cookie 값이 1로 설정되고 user_lv cookie 값이 3보다 크면 문제가 해결된다.

if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
if($_COOKIE['user_lv']>3) solve(1);

이를 통해 쿠키값을 바꾸면 문제를 풀 수 있다는 것을 알 수 있다.

난 크롬 확장 프로그램에서 쿠키 변조 툴을 설치하여 풀었다 (EditThisCookie 설치)

 

php 구문을 보면 3보다 크고 4보다 작은 값을 넣어야 문제를 풀 수 있다는 것을 알 수 있다.

위 사진처럼 난 쿠키값에 3.5를 넣어서 3보다 크고 4보다 작다는 조건에 성립하도록 만들어줬다.

3.5로 설정하고 페이지를 다시 접속하면 문제가 풀린다.

 

mac m1

pip install unicorn
pip install pwntools

바로 pwntools를 설치하려고하면 unicorn 패키지 에러가 뜬다.

이때 unicorn을 설치해주고 pwntools를 설치해주면 된다.

 

kali linux (VMware Fusion Tech Preview)

sudo apt-get update
sudo apt-get -y install unicorn
sudo apt install python-dev-is-python3

sudo apt install python3-psutil

pip3 install pwntools

위 명령어를 차례대로 입력해주면 된다.

 

vscode

vscode 터미널에도 똑같이 pip install pwntools 를 입력하면 vscode에서도 pwntools를 이용하여 코드를 짤 수 있다.

 

pwntools를 설치할 때 에러가 계속 떠서 오래동안 붙들고 있었는데 나중에 까먹을까봐 일단 써봤다..

'기타' 카테고리의 다른 글

2022 semicolon 한전체 문제  (0) 2022.08.10
24회 해킹캠프 후기  (0) 2022.06.02

1. web

lamb-sauce

소스코드 창을 보면

<!-- <a href="/flag-9291f0c1-0feb-40aa-af3c-d61031fd9896.txt"> is it here? </a> -→

가 뜬다.

소스코드 창 주소 끝에

/flag-9291f0c1-0feb-40aa-af3c-d61031fd9896.txt

를 붙여주면 플래그가 나온다.

 

flag: tjctf{idk_man_but_here's_a_flag_462c964f0a177541}

 

2. misc

twist-cord

문제를 보면 팀의 디코랑 트위터에 들어가라고 나온다.

디코에 들어가보면 처음 플래그가 나오고

 

그리고 트위터에 들어가보면 나머지 플래그가 나와있다.

 

flag: tjctf{please_enjoy_b6fd3b11fc5393c8}

 

3. forensics

cool-school

이미지에 쓰여있는 말풍선을 보면 하늘이 이상하다라고 나와있길래

stegsolve로 한번 돌려봤더니

 

하늘에 플래그가 있다.

flag: tjctf{l0l_st3g_s0_co0l}

fake-geoguessr

사진을 잘 보고 카메라 종류랑 위치, 추가 정보를 잘 보라고 나와있길래

처음에는 속성에 들어가보고 웹사이트에 들어가서 위치정보를 찾아봤다.

 

구글맵에 위치를 입력해봤더니

 

뭔가 나오긴 나오는데 플래그는 전혀 찾을수가 없었다.

구글링으로 포렌식으로 이미지 위치 관련 문제들을 찾아보며 따라해봤는데 메타데이터를 사용한 문제 같았다.

picasa를 사용하여 사진의 속성을 봤더니 뭔가 이상한게 있다.

 

저작권 칸과 jpeg 댓글을 보고 플래그를 찾았다.

flag: tjctf{thats_a_lot_of_metadata}

spongebob

문제 사진은 보면 사진 4컷 중 마지막 사진이 잘려있다.

 

누가 봐도 밑에 4번째 컷에 플래그가 있을 것으로 보인다.

세로가 잘린 것이기 때문에 사진의 세로 크기를 늘려보면 된다.

 

위처럼 사진의 세로 크기를 바꿔주었더니 마지막 컷이 보인다.

 

flag: tjctf{such_pogg3rs_ctf}

sneaker-zipper

문제의 zip 파일을 다운받아보니까 zip 파일 안에 flag.txt 라고 파일이 엄청나게 많이 담겨있다.

 

hxd로 용량도 바꿔보고 파일 형식도 바꿔보고 계속 삽질을 했는데 걍 FTK Imager로 여니까 바로 플래그가 나온다...ㅎ

flag: tjctf{sneakers_with_zippers_are_hip_no?_874d174bb26fcf95}

 

4. crypto

rsa-apprentice

==== SECRET RSA MESSAGE ====
n = 1216177716507739302616478655910148392804849
e = 65537
c1 = 257733734393970582988408159581244878149116
c2 = 843105902970788695411197846605744081831851

다운받은 파일에 이렇게 들어있었다.

http://factordb.com/

위 사이트 창에 n 값을 넣어서 p와 q를 구했다.

def zx(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = zx(b % a, a)
        return (g, x - (b // a) * y, y)

def modi(a, m):
    g, x, y = zx(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m

p = 1033247481589406269253
q = 1177043968824330681533

n = 1216177716507739302616478655910148392804849
e = 65537
c2 = 843105902970788695411197846605744081831851

fi =(p-1)*(q-1)
d = modi(e, fi)
print("%x" % (pow(c2, d, n))).decode("hex")

위와 같이 코드를 작성하고 c1과 c2를 차례로 넣어서 값을 구했더니

746a6374667b6e30745f73305f 와 5333637572335f4372797037307d 가 나온다.

이 두개의 16진수를 텍스트를 바꾸면 플래그가 나온다.

 

flag: tjctf{n0t_s0_S3cur3_Cryp70}

filmsy-fingereg-latin-teacher

ykvyg}pp[djp,rtpelru[pdoyopm|

문제에 이런식으로 플래그가 나와있다.

문제에 라틴 선생님이 키보드를 잘못 쳤다고 나와서 https://en.wikipedia.org/wiki/Latin-script_alphabet

이곳에서 맨 아래 keyboard layouts list 별로 알파벳을 나열해서 디코딩 사이트에 입력해서 디코딩해봤지만 플래그가 나오지 않았다.

그러다 저게 플래그이면 }가 {이고 |가 }라고 생각했다. 그럼 }| 자리에 {}가 있어야하니까 키보드를 오른쪽 한칸씩 민것이다.

사실 나중에 문제 풀고 안거지만 문제에 homerow의 오른쪽에 문제가 있다고 나와있었다. (그때는 뭔 뜻인지 잘 몰랐음..)

그래서 문제에 나와있는 문자의 한칸 왼쪽에 있는 키보드 글자를 대입해서 입력해보면 플래그가 나온다.

flag: tjctf{oopshomerowkeyposition}

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

HSOC 교내 해킹방어대회 문제 출제 후기 및 50점 문제 writeup  (0) 2022.10.08
cce 2022 예선 writeup  (0) 2022.09.27
25회 해킹캠프 writeup 및 후기  (0) 2022.09.23
CRYPTO CTF 2022 writeup  (0) 2022.08.16
EZ CTF writeup  (0) 2022.06.19

5/7~5/8 동안 진행한 대회이지만 이제서야 라잇업을 쓴다..

 

1.  steganography

Nobody’s perfect

hints: I wonder what tools exists online?

온라인에서 스테가노 툴을 찾아봐서 툴을 돌렸더니 플래그 나온다.

https://stylesuxx.github.io/steganography/

 

flag: EZ-CTF{Lickilicky_Is_Th3_Worst}

NEO

stegsolve.jar 툴을 사용했더니 숨겨진 플래그가 나온다.

 

flag: EZ-CTF{YOU_TOOK_TH3_R3D_P1LL_DIDNT_YOU}

 

2. MISC

Discord Bot Workaround

대회 서버의 봇에게 ?flag를 입력하면 플래그를 준다. 이때 내가 admin 일 때만 플래그를 주기 때문에 내 개인 서버에 이 봇을 초대해야한다.

https://discord.com/oauth2/authorize?client_id&scope=bot

위 주소의 id 뒤에 =디코 봇 id 를 입력해주면 초대가 가능하다.

 

이런식으로 봇을 초대해서 admin 권한으로 ?flag 를 입력했더니 아래와 같이 플래그를 준다.

 

flag: EZ-CTF{D1SC0RD_1S_L1T}

 

3. Forensics

https://docs.google.com/presentation/d/1Aapvk_kW5af4h_Ci_vLyJTYpIngtXFKB6f__ZA4KMug/edit#slide=id.g888624581b_0_233

위 링크에 들어가서 ppt를 자세히 보면 플래그가 쓰여져있다.

처음에 qr코드가 있어서 들어가봤지만 아무것도 없었다..

 

flag: EZ-CTF{TH1S_1S_FR33}

 

4. Web

I made a blog!

filter를 사용하라는 말 같아서 구글링으로 filter php 와 같이 계속 검색해보다가 php filter wrapper가 뜨길래 LFI 인 것을 알게되었다.

http://ez.ctf.cafe:9999/blog-posts.php?file=php://filter/convert.base64-encode/resource=/var/www/html/flag.php

위와 같이 주소를 입력했더니

 

위처럼 base64 문장이 떴다.

 

base64 문장을 online decoder로 디코딩 해주면 플래그 값이 바로 뜬다.

flag: EZ-CTF{LFI_1S_3Z}

 

5. OSINT

Alien Dream

이러한 이미지를 주고 big foot과 painter를 찾으라고 한다.

https://amycordova.com/extra-terrestrial

구글링을 해봤더니 위와 같은 사이트가 나온다.

 

빅풋을 검색해봤더니 고릴라 같은 괴물이 나와서 비슷한 그림을 찾아냈더니 플래그가 일치한다.

flag: EZ-CTF{Amy_Cordova_Summer_Of_Love}

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

HSOC 교내 해킹방어대회 문제 출제 후기 및 50점 문제 writeup  (0) 2022.10.08
cce 2022 예선 writeup  (0) 2022.09.27
25회 해킹캠프 writeup 및 후기  (0) 2022.09.23
CRYPTO CTF 2022 writeup  (0) 2022.08.16
TJ-CTF writeup  (0) 2022.06.19

사실 24회 해킹캠프가 끝나고 당시에 시간이 없었어서 이제서야 후기를 올려본다....🙄

올해 동계 해킹캠프는 토, 일 2일 동안 진행되었다. 처음에는 내용이 어려워서 내가 못 따라갈까봐 걱정했지만 발표자분들이 친절하게 질의응답을 해주시고 이해하기 쉽게 설명해주셔서 정말 재밌는 시간을 보낼 수 있었다.

2일 동안 9개의 발표를 들었는데 당시 한참 네트워크 공부를 하고 있었을 때라 노무승 발표자님께서 발표해주신 '와이파이(IEEE 802.11) 해킹에 대해 알아보자!' 라는 발표가 제일 재밌었고 인상깊었다. 이 외에도 웹해킹, 워게임, 취약점 분석 등 다양한 주제를 너무나도 열심히 발표해주셔서 평소 잘 접하지 못했던 내용들을 흥미롭게 들을 수 있었다. 또한 발표도 발표지만 캠프 중간에 SISS 분들이 준비해주신 퀴즈들 덕분에 더 재밌었다.
토요일 마지막 발표가 끝난 뒤에 새벽 1시인가 2시까지 팀원분들과 함께 ctf 문제를 풀었다. 솔직히 현재 해킹공부를 시작한지 얼마 안되었기에 ctf에 참가하기 전에 좀 겁이 났었는데 팀원분들이 너무나도 친절하셔서 긴장이 좀 풀릴 수 있었다.
약 6시간의 ctf가 끝나고 운 좋게 1등을 할 수 있었다 :) 당시에 문제 푸느라 바빴는데 대신 라잇업 제출해주시고 어려운 문제 다 풀어주신 팀원분들께 넘 감사했다...ㅠ


ctf가 끝난 뒤에는 다음날 다시 발표를 듣고 Demon 팀원분들과 Q&A 시간을 가진 후, 시상식을 하고 2일 동안의 캠프가 끝났다. 처음 캠프를 시작하기 전에는 온라인이라 많은 기대를 하지 않았는데 2일 동안 해보니 기대 이상으로 너무 유익하고 재밌었다. 특히 Demon 팀원분들과의 Q&A 시간에 그동안 궁금했던 점들을 직접 답변해주셔셔 앞으로 해킹공부를 하는데 도움이 될 정보들을 얻을 수 있었다. 다음번에는 제발 코로나가 좀 완화되어서 오프라인으로 했으면 좋겠고 온라인으로 해도 꼭 다시 참가할 계획이다.

'기타' 카테고리의 다른 글

2022 semicolon 한전체 문제  (0) 2022.08.10
mac m1 pwntools 설치하기  (0) 2022.06.19