- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date | 21/04/20 22:42:17 |
Name | ikuk |
Subject | 우리도 홍차넷에 xss공격을 해보자 |
제목은 어그로입니다. 재송합니다... 작년 한창 면접보러 다닐때 나왔던 코딩테스트 중에 xss공격을 당하기 쉽게 만들어놓은 웹 페이지를 보수하는 문제가 있었습니다. 그 당시엔 xss... 와 진짜 오랜만이다... 라는 생각이었는데, 올해도 어김없이 이 단어를 만나게 되서 감회가 새롭네요. XSS가 무엇인지 궁금하실까 해서 빠르게 적고 사라지겠습니다. 풀네임은 크로스 사이트 스크립팅(Cross site scripting)입니다. 몬헌X를 크로스라고 부르듯, XSS라고 표기합니다. '크로스 사이트'는 문자 그대로 '사이트를 통해서' 라는 뜻이고, 그 위에서 스크립트를 실행하는 행위를 말합니다. JS와 같은 언어는 script태그를 적어서 그 태그 안에 자기가 원하는 프로그램을 작성하고 실행할 수 있는데, 크롬이나 모던 브라우저를 쓰시는 분들은, F12 개발자 창을 열고, Console탭에서 alert('XSS!'); 를 복붙해 실행시켜보세요. 그러면 홍차넷 위에 스크립트 알럿창을 띄울 수가 있습니다. 하지만 다른 사람에게 똑같이 알럿창을 띄우고 싶다면 어떻게 해야 할까요? 이 게시글에 제가 script태그로 alert('XSS!');을 적고, 포스팅하면, 제 글을 읽는 모든 사람이 그 태그를 실행하게 되는거죠. 만약에 제가 이 게시글에 여러분의 컴퓨터의 불을 지르는 스크립트를 작성했다면 여러분이 이 게시글을 여는 순간 바로 컴퓨터에 불이 났을 겁니다. 그래서 크로스 사이트라고 하는거죠. 이런 스크립트를 사용해 사이트 유저들의 정보를 유출시키는 해킹을 XSS라고 부릅니다. 한때는 너무나 많은 사이트들이 이 해킹에 취약했고, 이 터무니없이 강력한 JS가 웹을 망가트린다고 욕을 먹었습니다. 그래서 대부분의 모던 CMS들은 유저가 글을 쓰는 기능에 script를 넣을 수 없도록 막아둔 곳이 많습니다. 아마 홍차넷이 쓰는 제로보드도 이미 많이 보안되어있을 정도로 오래된 이야기 입니다. 물론 js말고도 수많은 XSS공격방법이 있습니다만, 귀찮아서 그만 적겠습니다. (나무위키가 이런거 빠삭합니다. 원래 불난 집 구경이 재밌잖아요) 이렇게 우리도 우리도 크로스 사이트 스크립팅 준비가 끝났습니다. (당연히 아닙니다) 그럼 본론으로 돌아와 홍차넷 공격을 진행해봅시다. 이제 홍차넷 곳곳에 숨겨진 PHP파일을 찾아보세요. 원피스처럼 세상의 모든 것을 그곳에 숨겨두셨을 겁니다(아닙니다) 아마 숨겨진 PHP파일들은 대부분 토비님이 수작업을 자동화하기 위해 만드셨을 겁니다. 혹시 만약에 이것을 찾으셨다면, 그다음에는 GET파라미터 (write.php?id=free의 id=free 부분)을 유추해봅니다. 분명 먹히는 게 있을겁니다. 예를들어서 자동강등용 leveldown.php를 찾았다면, leveldown.php?member_no=7245 (제 아이디 번호입니다) 등을 실행해보는거죠. 여기까지 성공하셨다면 당신은 원피스를 찾은겁니다. 마지막으로 for 구문으로 0부터 100000까지 반복시켜서 모든 회원들을 평등하게 강등시킵시다. 아, 자기자신의 아이디는 강등처리가 안되게끔 꼭 예외처리를 해두세요. 건의 게시판에다가 이런걸 찾았다고 토비님께 꼭 자랑해야 하니까요. 14
이 게시판에 등록된 ikuk님의 최근 게시물
|