본문 바로가기

일상

Layer7 CTF 후기

반응형

Wargame.kr에 있는 게시판에 Layer7 CTF에 대한 홍보가 있어서 가입을 했다.

CTF는 토요일 오전 9시부터 일요일 오전 9시까지 총 24시간 동안 진행되었다.


문제의 경우에는 바이너리, 포렌식, 리버싱, 웹, MICS 이렇게 5가지 분야로 있었다.


일단 바이너리 부분의 경우에는 기초가 안되어 있어서 그런지 한 문제도 풀지 못했다.... 바이너리에 대해 미리 공부해 놓았으면 한 문제라도 풀 수 있었을 텐데 아쉽다.


포렌식의 경우에는 한 문제를 풀었는데, 이미지를 주고 그 이미지를 찍은 사람이 어떤 대회에 참가했는지를 알아내는 문제였다.

이 문제의 경우에는 그냥 사진에서 Meta 데이터를 읽을 수 있는지 묻는 난이도의 문제였다. 사진에 있는 GPS 정보를 이용해서 대강의 위치를 알아내고, 찍힌 날짜와 조합해서 구글에 검색한 결과 "제5회 K-ICT 창의 아이디어캠프"라는 결과를 얻어내었다.


리버싱의 경우에도 Welcome이라는 이름을 가진 문제만 해결했다. 그냥 문자열을 입력받아서 특정 배열에 있는 값과 XOR을 해서 WelcomeToLayer7CTF라는 문자열을 얻어내게 하는 것이 문제였다.

처음에 STACK 구조를 반대로 착각해서 삽질을 했었다...


Climbing 문제도 풀 수 있을 것 같았는데 암호화하는 과정이 너무 길어서 포기했다... 일단 flag.bmp라는 파일을 읽어서 그 길이를 가져와서 그 길이를 3과 &연산을 한 만큼을 읽어서 encrypt.bin 파일에 쓰고, 그 다음부터는 flag.bmp를 4 byte씩 끊어서 암호화를 해서 encrypt.bin에 쓰는 것 까지는 알아냈다.



웹의 경우에는 하나는 그냥 거저 주는 문제였다. 소스코드 보기를 하면 바로 FLAG 값을 얻을 수 있는 문제였다.

그 다음으로 해결한 문제는 회원가입을 해서 로그인을 하면 아이디를 BASE64로 인코딩 하는 과정과 거꾸로 문자열을 배열하는 과정을 사용해서 쿠키값으로 주는 것을 확인했다.

그리고 이 과정을 역으로 해서 admin(?)을 가지고 암호화한 값을 쿠키로 줘서 플래그를 획득했다.


'SQL Injection?'이라는 문제는 10'||id='junoimxxxxxxxx'||idx>'0과 같이 다양한 쿼리를 시도했는데 먹히지 않았다. 일단 필터링의 경우에도 코딩 실수인지 아니면 일부러 취약점을 만들었는지 몰라도 |, = 등이 제대로 필터링 되지 않았다.

그리고 결과가 똑같아서 이게 쿼리의 오류인지 아니면 데이터가 없는 것인지를 몰라서 삽질하다가 시간만 보냈다.


MICS 분야였는지 아니면 따로 암호화 파트가 있는지 기억은 안 나는데, 카이사르 암호화 문제 하나만 해결했다. 

RSA와 매우 유사한 문제도 있긴 했는데, 이 문제의 경우에는 202bit에 해당하는 숫자를 소인수 분해를 하다가 컴퓨터가 에러를 내뿜어서 포기했다.


어쨌든 이번 CTF를 계기로 바이너리 부분을 매우 많이 부족하다는 것을 깨닫고(이름 자체에 easy가 붙어있었는데 하나도 해결하지 못했다..) 공부를 해야 겠다는 생각을 했다.

반응형

'일상' 카테고리의 다른 글

삼성 codeground 1차 합격  (0) 2018.07.01
2017. 01. 09. ~ 2019. 01. 08.  (2) 2017.03.11
요즘 보고있는 강의  (0) 2016.07.21
약간 늦은 에너지 해커톤 후기  (3) 2016.04.02
흠..  (2) 2016.03.16