Misc

pwnable.kr을 마치며...

orangecalculator 2022. 5. 21. 23:48

이틀 전 2022년 5월 19일 새벽 5시 34분 KST에 마지막 pwnable.kr 챌린지인 crcgen을 완료했다. 

 

이로써 모든 pwnable.kr의 모든 챌린지를 완주했다. 

 

오랜 시간 공을 들여서 완주를 했다는 생각을 하니 뿌듯하다. 

 

본인은 굉장히 어렵게 문제들을 다 풀었는데 이게 DEFCON이나 CTF 대회들보다 훨씬 쉽다니 참 놀라울 따름이다. 

 

pwnable.kr 인트로 페이지

 

pwnable.kr은 장대희 교수(현 성신여대)님이 (아마도) 대학원 시절에 만든 사이트이다. 컴퓨터 기술이 빨리 바뀌고 업데이트되는 것에 비하면 꽤 오래된 사이트라고 할 수도 있을 것 같다. 

 

pwnable.kr credit

 

본인 앞에 이미 수많은 분들이 이미 완주를 하고 떠났었다. 역시 취약점에 대해 다루는 사이트이다 보니 문제의 취약점에 대해 제보하신 분들이 많고, 시스템 자체의 취약점에 대한 부분들에 제보하신 분들도 계신다. 현재 랭킹 상단에 안 계신 분들이 많은 것으로 봐서는 완주하고 사이트에 방문한 지 오래되었는데 문제가 업데이트되면서 랭킹이 바뀐 것이 아닐까 싶다. 

 

교수님 CV에 보면 사이트는 2014년에 개설되었다고 되어있다. 본인은 2020년에 시작했기 때문에 거의 문제가 추가되거나 삭제되는 걸 못 보긴 했지만, 옛날에 다른 사람들이 해당 사이트 챌린지 하는 동영상 보면 문제가 시간이 지나면서 꽤 많이 업데이트되었던 걸로 보인다. 

 

지나가는 말로 장 교수님 굉장히 경력이 화려한 느낌이 든다. 적어도 본인에 비해서는 그렇다... 2014년도에 CTF 입상하셨다고 되어 있는 것을 보면 그 이전에 꽤 오래전에 시작하셨을 것 같다. 열정을 가지고 공부를 하면서 이 사이트도 만들었겠거니 싶다. 본인이 이 사이트에서 챌린지 처음 시작할 때는 조지아텍에서 박사 후 과정에 있으셨는데, 학교 생활로 바빠서 한동안 안 하다가 최근 들어서 다시 마무리하려고 들어와 보니 어느새 교수님이 되어서 한국에 들어 계셨다. 실제로 본인이 Grotesque 문제들을 풀 때만 해도 운영자 이메일이 gatech.edu 도메인이었는데 어느새 sungshin.ac.kr 로 바뀌어 있었다. 

 

기록된 챌린지 목록

 

본인은 사진에 보이는 것처럼 챌린지를 풀 때마다 기록해놓았다. 이 사이트 문제를 풀기 시작한 게 이 블로그 개설하기 이전이라서 그냥 메모장으로 기록을 했다. 맨 처음부터 기록을 한 건 아니고, 지금 보니까 Rookiss의 syscall 문제부터 기록이 되어있다. 

 

본인이 기록한 첫 챌린지

 

사진에 보이는 것처럼 챌린지를 풀 때마다 기록해놓았는데 항상 문제를 풀 때마다 시작한 시간과 끝낸 시간을 기록해놓았다. 위에 사진을 보면 syscall 문제는 2020년 4월 4일 오후 3시 5분에 시작했다고 나와있는 걸로 보인다. 사진에는 안 나왔지만 5시 50분에 끝낸 걸로 나와있다. 

 

파일 수정시간으로 보면 2020년 1월에 시작한 걸로 보인다. 아마 겨울방학에 심심해서 시작한 것 같다. 처음에 친구가 추천해주어서 시작했었는데 어려운 걸 풀어내고 느끼는 성취감 같은 게 있어서 계속하다 보니 끝까지 할 수 있었던 것 같다. 

 

 

마지막으로 해결한 챌린지는 crcgen인데 새벽 5시 34분에 해결했다. 밤에 문제 열어보고 얼마 안 걸리겠지 싶어서 계속하다가 밤을 새버린 듯하다. 

 

Hacker's Secret 완료

 

crcgen을 해결하고 나서 사이트를 보니까 모든 문제에 초록불이 떠서 사진 한방 찍었다. 이름부터 Hacker's Secret이라서 시작할 때 겁을 좀 먹었었는데, 역시 말 그대로 어렵더라는 이야기다. 

 

가장 기억에 남는 챌린지 3인방

 

본인이 생각하기로 몇 가지 챌린지를 꼽아보자면, tiny랑 towelroot가 도전할 당시 체감으로는 제일 어려웠던 것 같다. 물론 객관적으로 보면 그 뒤에 챌린지들이 더 어려울지도 모르겠지만, 그 후에는 공부를 더 하기도 했고 그 이전에 챌린지를 해결하면서 실력이 좀 더 쌓여서 그랬던 게 아닐까 싶다. 

 

가장 기억에 남는 챌린지는 softmmu이다. 세부적인 사항은 이야기하지 못하겠지만, 정말 특이하고 흥미로운 문제라고 말하고 싶다. 물론 본인은 CTF를 제대로 공부한다던가 대회를 나간다던가 이런 건 안 하는 사람이고, 그냥 이 사이트는 취미로 한 것이라서 이런 문제가 흔할지는 잘 모르겠다. 그런데 이 문제를 처음 접하고 풀 때는 정말 흥미롭고 재밌는 문제라는 생각이 들고, 지금도 기억에 많이 남는 문제로 꼽히는 것 같다. 다행히 이 문제에 사용되는 지식들은 이미 알고 있는 것들이라서 그리 어렵지 않게 풀었던 것 같다. 다만, 이러한 사항이 이렇게 소프트웨어 단계에서 큰 영향을 미친다는 게 참 신선했던 것 같다. 

 

pwnable.kr 완료 후 랭킹보드

 

문제를 다 풀고 나니 점수가 11301점으로 현재 시점 기준으로 1위부터 25위까지 동일한 점수이고, 이 안에서 순위는 완료한 시간 순서이다. 본인 아이디는 뭘까~요?

 

 

당연히 25명 중에 맨 밑에 있는 ocal이란 아이디지요. 본인 위로 태극기가 가장 낮은 순위에 계신 분이 14위인걸 보면, 생각보다 여러 나라에서 많은 분들이 이 사이트를 이용하고 계신 걸 알 수 있다. 완주하신 분들 국가를 보면 미국, 대한민국, 그리고 잘 몰랐는데 이스라엘 분들이 되게 많다. 본인이 기독교라서 익히 알고는 있었는데 역시 이스라엘이라는 국가는 참 대단한 국가라는 걸 다시 한번 느낀다. 

 

 

마지막으로 감사한 분들 이야기를 하고 끝마치고자 한다.

 

먼저, 이런 재밌는 사이트를 만들어주신 장대희 교수님께 감사드린다. 많이 배웠습니다, 교수님. 그런데 엿도 가끔 먹이시던데, 뭐... 그런 부분들에서도 많이 배웠습니다. 감사합니다. 

 

두 번째로, 이런 좋은 사이트를 소개해준 친구에게 고맙다고 하고 싶다. 고맙다 친구야. 

 

마지막으로, 직접적으로 관련이 있지는 않지만, 이러한 시스템 관련된 지식들을 처음으로 배웠고 어려운 지식을 심도 있게 잘 가르쳐주신 김장우 교수님께 감사드린다는 말을 하고 싶습니다. 감사합니다. 비록 한 학기 수업밖에 안됐지만, 정말 많이 배웠습니다.

 

 

감사합니다.