26회 해킹캠프 후기 그리고 CTF write up
군 전역을 하고 학교를 복학하기 전 해킹캠프에 꼭 참가하고 싶다는 생각이 들어
이번 2023년 2월 11일(토) ~ 12일(일)에 열리는 해킹 캠프에 신청했다.
솔직히 군대를 갔다온지 얼마 되지 않아서 해킹캠프에 가서 같은 팀에게 민패만 될 것 같다는 생각이 들었지만 정말 들으면 재미있고 좋겠다 생각한 발표들이 너무 많았기 때문에 발표를 듣기 위해서
그리고 해킹을 하는 사람들을 만나 동기부여도 받고 싶었기 때문에 용기를 내게 되었다. 그렇게 아침 4시 30분에 일어나 새벽 기차를 타고 해킹 캠프에 참가하게 되었다.
해킹 캠프 결과는 정말 대만족이었다. 해킹에 관심이 많은 정말 많은 친구들을 만나게 되었고 열정이 넘치는 모습을 보니 나도 정말 열심히 공부해야겠다는 생각이 들게 되었다. 어린 나이에 참가하는 친구들도 보이고
벌써부터 열심히 공부해서 다양한 지식을 가지고 있는 분들도 너무 많이 있었는데 기가 죽는게 아니라 나도 꼭 열심히 공부해서 많은 지식을 가지고 싶다는 긍정적인 에너지를 많이 얻은 것 같았다.
또한 저랑 함께 CTF 6시간동안 뛰어주신 팀원분들에게 감사하다는 마음을 전하고 싶다.
이번 26회 동계 해킹캠프 준비해주신 Demon 팀원분들, 그리고 엄청난 지식과 경험을 발표해 주신 발표자분들께 정말로 감사드립니다!
26회 해킹캠프 CTF Web 문제 : SQL에로 떠나는 여행
출제자: DEMON팀 이재승님
sql에게로 떠나는 여행 문제는 사진과 같이 mp3 플레이어가 재공 되고 mp3 플레이어를 재생한 뒤 10초가 지나면 위와 같이 로그인 페이지가 나타나 계속 들으려면 로그인하라고 한다.
처음에 나는 당연히 SQL Injection 문제일 거라 생각하고 SQL Injection공격을 시도했다.
" OR 1 = 1 --
가장 간단한 공격부터 우회 공격까지 모든 공격을 해 보았지만 모든 공격이 막혀있었다.
또한
ID: guest PW: guest로 로그인이 가능하였지만 로그인을 해도 별다른 결과가 없었다.
그렇게 문제를 푸는데 실패하였고 캠프 마지막날에 문제 출재자인 이재승 님께서 write up을 해 주셨다.
이문제는 Burp Suite를 사용하거나 f12 개발자 도구에 가서 Headers를 살펴보면 /에 요청할 때는 Code 헤더를 주지 않고
/login.php에 요청했을 때만 주는 것을 알 수 있다.
Code의 내용은 with debug parameter 즉 /login.php에 debug 파라미터를 함께 추가하면
이렇게 코드를 보여준다. 코드 밑으로 내려가다 보면
결국 2023_admin으로 로그인을 해야 하는 것을 알 수 있다.
하지만 아이디와 패스워드의 합이 7글자 이하로 로그인해야 한다.
하지만 DB를 보면 id부터가 7글자를 넘기 때 문에 DB를 다 털어도 로그 인 할 수 없다.
여기서 우리가 해결하기 위해 알아하 하는 정보는
mysql은 문자열을 더할 수 있다는 사실이다.
mysql에서
"aaa123" + "bbb123" = 0이다.
"2023_admin" + "1a2b3c4d" = 2024이다.
여기서 규칙은 문자열을 더할 때 숫자가 나올 때까지만 숫자로 입력되어 더해진다는 사실이다
"aaa123"은 처음 단어가 a이기 때문에 0이 되고
"bbb123"도 마찬가지로 b이기 때문에 0이라서
0+0=0이란 값이 나왔고
"2023_admin"은 2023까지 숫자가 있어 2023
"1a2b3c4d"는 1까지 숫자이기 때문에 1
그러므로
2023+1=2024가 나온다.
이 취약점을 이용하여 sql을 짜면 SELECT * FROM chall WHERE id=‘\’ AND pw=‘+’ 2023’;
이렇게 입력한다면 결국 두 문자열의 덧셈이므로 글자수가 7글자 이하로 로그인이 가능하게 되는 것이다.
정말 재미있고 신기한 문제라고 생각한다!
해킹캠프를 다녀오고 나서 더 많은 지식을 얻고 싶다고 생각했고 더 열심히 공부를 해야겠단 생각도 들었다.
왔다 갔다 그리고 신청하는데 약 20만 원이 깨졌지만 그만큼의 가치가 충분하다는 생각이 들었고 집이 더 가까웠다면 좋겠다는 생각도 했지만 해킹캠프를 참여하는 건 분명 의미 있는 경험이라고 생각한다. 집이 서울이거나 가까운 지역에 사는 해킹을 공부해보고 싶거나 해킹에 자신이 있는 학생이라면 꼭 한 번 경험해 보는 것을 추천한다.