SamsungCTF 2018 후기
예선
잘 기억은 안나지만 7월 초에 했던것 같습니다. 아마 문제들이 꽤 어려워서 포너블 몇개만 풀고 60~70등 사이로 본선에 진출했었습니다.
본선 초반
SCTF 본선엔 처음 왔는데 주변에서 대회장 칭찬을 많이 들어왔어서 기대를 많이했습니다.
대회장은 엄청 깔끔하고 후드티랑 뱃지같은게 있더라구요!! 일찍가서 코인을 3개받았는데 저걸로 인형뽑기를 할 수 있었습니다. 저때 아마 잠만보 인형을 뽑았어요 ㅋㅋㅋㅋ
대회 시작전인데 앞에 매점같은곳에 과자랑 먹을게 엄청 많더라구요!! 특히나 음료수같은건 약간 얼어서 더 맛있었어요 ㅎㅎㅎ 인형뽑기랑 매점있던곳을 찍었어야 했는데 까먹었네요,,
본격적인 CTF 시작
이때부터는 문제푸느라 정신없어서 사진이 없습니다. 풀었던 문제들만 간략하게 리뷰해보겠습니다.
문제에 대한 설명이 있으니 혹시라도 문제 풀어보실분은 지나가주세요!!
Attack - memo (253 pts / 19 solvers / easy)
memo 문제는 attack에서 가장 쉬운 난이도인 easy로 나왔는데요. 이때 이문제를 4번째로 풀어서 꽤 기분좋은 스타트를 했습니다. (위에는 전체랭킹이 아닌 Attack 랭킹입니다.)
문제를 대략적으로 설명하면 write / edit / delete / show의 메뉴를 가진 문제인데요, write한걸 save, load할 수 있다는점이 일반적인 문제와 달랐습니다. 그리고 login과 register를 할 수 있는데 login을 할때 chdir을 해서 디렉토리를 변경합니다. 그래서 abort를 내던가 프로그램을 죽여서 core파일을 생성하면 그 파일을 불러올 수 있고 그걸 읽어서 buffer overflow를 발생시킬 수 있었습니다.
사실 core 파일을 생성하기만 하면 금방 알아채서 exploit까지 성공할 수 있던 문제라 easy 난이도였다고 생각합니다.
Attack - heapXheap (373 pts / 11 solvers / easy)
이 문제는 정말 힘들었습니다. 제가 원래 힙문제를 좋아하는 편인데 이상한 부분에서 삽질을 해가지고 거의 대회 절반을 이문제에 쓴것 같습니다. 대회 중간에 이문제 못풀면 해킹접자! 라는 마인드로 풀었습니다 ㅋㅋㅋㅋㅋㅋ
이게 취약점을 찾는데 정말 오래걸렸는데 취약점이 너무 엉뚱한 부분에 있었습니다. 이상한 유사 취약점들에 삽질했던 시간들이 아깝더라구요. 어쨋든 취약점을 찾은 다음에 익스는 rctf에 출제되었던 문제와 동일해서 금방 풀었습니다. 진짜 못풀었다면 엄청 슬플꺼 같았는데 다행이네요.
Attack - Millionaire (468 pts / 8 solvers / medium)
이 문제는 제가 공부를 해왔던 문제입니다. SCTF 예선때는 스마트 컨트랙에 관한 지식이 없어서 못풀었던 문제가 있었습니다. 그래서 본선에 컨트랙 exploit 관련 문제가 나올꺼 같아 한달정도 준비를 했었습니다. 그래서 딱 보고 아 이문제는 무조건 퍼블을 먹어야겠다 했는데 서버에서 컴파일 에러나 이상한 잡다한 에러가 몇개 나서 약간 늦게 풀었습니다.
어쨌든 준비했던 문제라서 빠르게 풀었고 취약점도 엄청 단순해서 컨트랙만 아는사람이면 금방 풀 수 있었던 문제였습니다.
Attack - disposable (629 pts / 5 solvers / medium)
생각보다 쉬웠던 문제입니다. 이것도 미디움이긴 한데 일회용 스택을 사용하는 문제였습니다. 근데 스택에 더해주는 오프셋이 2바이트만 써서 0xffff를 넘기면 0으로 돌아오는것을 이용해 익스해주면 되는 문제입니다. 저부분을 빠르게 찾아서 꽤 금방 풀었던것 같습니다.
Reversing - Baby TPK (173 pts / 36 solvers / easy)
어택을 4개 풀고나서 대회 종료까지 한 6시간정도 남았을때 더이상 풀 문제가 없어서 잡았던 문제입니다. 이 때 이 문제를 못풀었으면 상을 못탈꺼라 생각했는데 포너블 4개만해도 점수가 꽤 크더라구요. 그렇게 어려운 문제는 아니였지만 제가 리버싱도 못하고 처음보는 tpk라 한 2시간 정도 걸린 것 같습니다. 어쨌든 그냥 재미있게 풀었습니다.
먹을 것
아침, 점심, 저녁, 야식, 아침까지 다 맛있었습니다. 중간에 문제푸느라 먹을꺼에 많이 신경쓰지 못했지만 넘쳤으면 넘쳤지 절대로 부족하지 않았습니다. 그래서 정말 행복했습니다 ㅋㅋㅋㅋ
대회 종료
15위로 3등상(장려) 탔습니다..
예상은 했지만 3rd Place에서 보니까 기분은 좋더라구요 ㅎㅎㅎ
대회 이후에 컨퍼런스할때 상을 받았습니다.
최종 후기
처음 본선에 진출했고 이렇게 일반부 개인전에서 상타본적은 처음입니다. 예선 진출자 리스트를 보고 저렇게 잘하는사람들과 경쟁할 수 있을까 싶었는데 결국 상까지 받아서 기분이 매우 좋네요 ㅎㅎㅎ
대회할때도 정말 닉네임만 보던 분들이 실제로 근처에서 대회하고있어서 정말 멋있고 존경스러웠습니다. 앞으로도 더 열심히해서 더 높은 등수에 있었으면 좋겠네요!! 그리고 위에 글은 의식의 흐름대로 쓴거라서 문장이 이상하거나 오타가 많을 수 있으니 양해 부탁드립니다 ㅠㅠ..