티스토리 뷰

Application/Debug

[보안과 해킹] 싸이월드 공격 일지 #1

알 수 없는 사용자 2007. 3. 15. 11:33

워니. 추억ㅇㅔ ㅂㅣ추ㅇㅓ. iwonny.egloos.com valley log-in



싸이월드 공격 일지


Update 2007-02-20 18:35
/* 쿠니쿠니님께 감사! */
플래쉬 업로드 성공하였습니다~ http://www.cyworld.com/ssowonny
싸이 참, 허허 관리를 그렇게 하는군요-_-
(저도 남말할 것은 못되지만 ㅎㅎ - 아래 소스 보셨나요? 지금 제 집에있는건 조금 보완을 했지만, 엄청나게 쉬운?공격 루트가 숨어져 있죠.)

음, 퇴근시간도 됬고, 가봐야해서 ㅠ_ㅠ
시간 날때 방법 업로드 하도록 하겠습니다 -
( 방문자 기록하도록 플래쉬도 만들어야 겠군요;; )


----

음, 사실 뭐 거창한 걸 기대하시는 분들께는 죄송하지만, 거창하지 않습니다.
두괄식으로 결론 부터 말씀드리자면, 죄송하지만 아직까지는 싸이월드 미니홈피 메인페이지에 스크립트를 넣는 것은 실패 했습니다.
다만, 미니미를 투명인간으로 만드는 것 정도만 성공했군요.
http://www.cyworld.com/ssowonny

자, 그럼 시작해 볼까요?
최대한 HTML만 알면 알아들을 수 있도록 얘기해 보겠습니다.

우선 많은 분들이 올려주신 Tip들을 하나하나 분석해 보겠습니다.
1. 비밀님
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=talkbox&wr_id=138257&page=1538
덕분에 미니미를 좀 고쳐볼 수 있게 되었습니다. 감사합니다 ㅎㅎ
하지만
첫째, 그 때 당시에도 이미지를 수정하는 것은 가능했지만, script를 넣는 것은 안되었을 것으로 보입니다.
둘째, 그나마도 막혀서 http://img.cyworld.nate.com/img/myroom/avatar/ 로 시작하지 않는 이미지는 넣을 수 없습니다. 그래서 싸이월드 이미지들로만 구성된 투명인간 미니미를 만들었지만요 ㅎㅎ
자세한 얘기는 조금 밑에서 해보도록 하겠습니다.


2. 비밀님
http://72.14.253.104/search?q=cache:hOuCnaMXCscJ:6666.tistory.com/53+%EC%8B%B8%EC%9D%B4%EC%9B%94%EB%93%9C+%ED%94%8C%EB%9E%98%EC%8B%9C+%EC%98%AC%EB%A6%AC%EA%B8%B0&hl=ko&ct=clnk&cd=1&gl=kr

이 글을 보니 클럽을 이용한다는 것은 플래쉬를 올리는데 이용하는게 아니라, 기록하는데 사용하고 있는 듯 하군요. 스크립트를 사용할 수 있다면 기록은 문제되지 않습니다. (실제로 저는 제 서버를 이용해서 기록하고 있죠. 여러가지 방법이 있을텐데, 예를들면 방문자 정보를 메일로 받는다거나 하는 것도 가능하죠. )

이 글에서 주목할 점은 '플래쉬를 올렸다'는 점인데,
이점에 대해서 조금 밑에서 얘기해 보겠습니다.



싸이월드를 뜯어보자.

사전 지식으로 짚고 넘어갈 것은, 서버측에서 바꾼 정보는 서버를 해킹하기 전에는 수정하기 힘들다는 점입니다.

첫번째, 현재 사용가능한 http://iwonny.egloos.com/2926230?에 대해서 얘기해보기로 하죠.
많은 분들이 자체 계정에서 돌릴 수 있으면 하는 바람을 주셨습니다.
http://www.iwonny.net/source/cy_count/source.txt
에 올려 놓았습니다만,?정말 별게 아니어서 참 민망합니다.ㅎㅎ
지금보니, 몇줄 안되는 소스임에도 불구하고 대충대충 뚝딱뚝딱 한 티가 팍팍 나는군요 ㅠ_ㅠ
php 이구요, db는 사용하지 않았습니다. ( 파일을 직접 만드는 짓같은 것을 했죠 아하하하 ㅠ_ㅠ )

원리는 간단합니다.
싸이월드는 미니홈피 html에 여러가지 javascript를 이용하기 위해서 방문자 정보를 기억하고 있습니다.
여러분이 어떤 미니홈피를 방문했을 때, 자신의 정보가 여러분에게 보이죠? 그것은 정보를 가지고 있다는 것이죠.
그 중에 간단히 가져올 수 있는 정보가 사용자의 tid, 네이트온아이디 입니다.
이것을 어디론가 보내서 저장한다면? 이게 바로 방문자 기록 이군요.
제가 사용한 방법은 script를 이용해서 저 정보를 제 서버로 보내고, 서버에서 받은 정보를 기록하는 방식 입니다.
간단하죠?


두번째, 미니룸에 스크립트를 달 수 있을까?
네, 일단은 리플로 남겨주신 두가지 방법이 생각나는 군요.

1. 미니미를 바꿔보자.
2. 말풍선에 스크립트를 넣어보자.

1. 미니미를 바꿔보자.
네, 첫번째 비밀님께서 힌트를 주셨던 그 방법입니다.
이것이 가능한 이유는 싸이월드가 미니미를 변경할 때, 서버로 보내는 정보가 아이템의 ID가 아닌 아이템의 이미지 주소 이기 때문입니다.
무슨 의미냐구요?
- 미니미의 머리카락을 1번 모양에서 2번 모양으로 바꿨다고 생각해 봅시다. 그리고는 `미니미 저장' 버튼을 눌렀습니다. 그러면 제가 싸이월드로 보낸 정보는 무엇일까요?
a. 머리는 2번이다.
b. 머리는 http://img.cyworld.nate.com/img/myroom/avatar/hair/2.jpg 이다.
a로 하는 것이 보안상 맞습니다만, 싸이월드는 b를 사용했군요.
덕분에 http://img.cyworld.nate.com/img/myroom/hair/2.jpg이 정보만 바꾸면, 미니미 대신에 아무 이미지나 넣을 수 있게 되었습니다. 덕분에 여러 사람이 미니룸에 커~다란 이미지들을 갖다 넣을 수 있게 되었습니다. 어익후 이거 큰일이군요. 싸이월드는 대책을 세웠습니다. 사용자로부터 미니미 변경 정보가 오면,?http://img.cyworld.nate.com/img/myroom/avatar 로 시작되지 않을 경우 오류를 뱉어버리자. 네, 덕분에 외부 이미지는 사용할 수 없게 되었지만, 싸이월드 미니미 이미지는 마음껏 사용할 수 있겠군요. 덕분에 저는 얼굴 그림 대신에 썬글라스를 씀으로서 투명한 사람이 될 수 있었습니다.

2. 말풍선에 스크립트를 넣어보자.
HTML을 아는 분들이라면, 태그가 < 와 > 사이에 온다는 점을 알고 계실 것입니다.
<img src="abcd.jpg" alt="haha" /> 이미지를 넣는 태그입니다.
여기서 의문점이 생기는 분들이 있죠. " 어라? < 와 > 를 쓰고 싶으면 어떻게? >_< 를 적고 싶은걸? "
네, 그냥 적으면 문제가 되겠죠? < 가 시작한 부분부터 어디선가 > 가 나올 때까지 태그로 인식해버리는 바람에 HTML이 깨질 수 있습니다. 그럼 어떻게?
바로 &lt; &gt; 이죠. 이것들은 < 와 > 를 나타내는 문자들입니다. 웹브라우죠(익스플로러 등)은 저 문자를 < 와 > 로 해석해서 보여주죠.
자, 이 얘기를 왜 했느냐?
말풍선에 넣는 말들의 제한을 풀어서 서버로 보낼 수는 있습니다.
제가 <script language="javascript">alert('hello');</script> 라는 스크립트를 넣었다고 해봅시다.
이게 의미하는 바는 hello 라는 경고창을 띄워라 입니다.
싸이월드 서버쪽에서는 저것을 받아서 말풍선에 넣을 때 어떻게 넣을까요?
네! 그렇습니다, &lt;script language="javascript"&gt;alert('hello');&lt;/script&gt;으로 변경되서 집어 넣는군요.
저런, 서버쪽에서 저렇게 변경하는 것이니 < 와 > 를 쓰지 못하는 이상 제게 스크립트를 쓸 기회는 없군요.


세번째, 메인 페이지에 플래쉬 넣기, 가능할까?
원래 싸이월드를 안했기 때문에, 제 추측을 말씀드려 보겠습니다.
1. 기존에는 싸이월드 메인페이지에있는 사진에 플래쉬를 직접 넣는 것이 가능했습니다. (맞나요?)
하지만 문제점이 생겼죠. 플래쉬를 이용해서 방문자 정보를 알아낸다는 것이었습니다!
2. 싸이월드 내에서 제공하는 플래쉬만 사용하게 해 놓았습니다. ( 맞는지 모르겠네요-_- )
기본적으로 플래쉬와 이미지는 삽입 태그가 다릅니다. 제가 아는 바로 이미지 삽입 태그는 img 이고 플래쉬는 embed를 이용하는 것으로 알고 있습니다. 즉, <img src="hahahahaha.swf" alt="flash?" /> 라고 입력해 보았자 플래쉬가 작동하는게 아니라는 것입니다.
플 래쉬가 올라가는 것 자체가 가능했던 시절, 싸이월드는 embed 를 사용할 것인가, img를 사용할 것인가를 서버에서 결정하도록 해놓았겠죠. 사용자들은 그것을 이용해서 swf를 embed 태그로 사용하도록 넣어 놓았고, 플래쉬가 나올 수 있었던것이죠.

여기까지가 제 추측입니다.

3. 현재 싸이월드는 메인페이지에 있는 사진에 플래쉬 자체를 넣지 않는다.
지금 제가 정상적인 방법으로 싸이월드 메인페이지 사진에 플래쉬를 ( 그것이 싸이월드가 제공하는 것이든 아니든 ) 넣을 수 있는지 알고 싶군요. 없다고 알고 있습니다. (혹시 도토리 주고 사면 올려주는 그런것도 있나요?)
없다고 가정하면?이런 결론이 나옵니다.
싸이월드 메인페이지 사진에는 img 태그만을 사용한다.
이럴 경우 이렇게 저렇게 돌아가도 플래쉬는 img 태그 안으로 들어가서 작동하지 않게 되는군요.

* 추가 : 아주 예전에 해커들이 흔히들 사용했다는 방법이 있습니다. (허술한 곳에서는 아직도 사용 가능합니다.)
비슷한 원리로 얘기를 해보죠.
가나다.jpg 라는 파일을 올려보도록 하겠습니다.
싸이월드가 주는 HTML을 열어보면
<img src='가나다.jpg' alt=' /> 라고 나온다고 가정해 보죠.
이제 가나다.jpg라는 이미지의 이름을?가나다' onload=javascript:alert('hihi'); alt='.jpg 로 변경해 보죠.
그러면 싸이월드가 주는 HTML에 들어가는 정보가 어떻게 될까요?
네! <img src='가나다' onload=javascript:alert('hihi'); alt='.jpg' alt=' />
가 되었으면 하는 바람이군요! 저 코드가 의미하는 바는, 이 이미지가 다 불려지면 javascript:alert('hihi'); 라는 스크립트를 실행하라 입니다. 즉 응용하면 여러가지 일을 할 수 있다는 것이군요.
하지만~ 역시 옛날에 쓰던 방법이니만큼, 안된다는 것이 안타까울 뿐이죠.
스페이스, 한글, ' 등 파일명에 있는 영어가 아닌 글자들은 %23 등의 숫자로 변경됩니다. ( &lt; 가 < 인것과 비스므리 하죠 )
즉, 기대했던 결과값과는 다르군요.




결론,
그런 의미에서 위의 것들을 통한 스크립트 삽입?- 그것을 통한 방문자 기록 - 은 어렵다는 견해입니다.
물론, 여러가지 기상 천외한 방법들이 나올 수 있겠죠, 참신한 아이디어가 넘쳐나는 세상이니까요 ㅎㅎ.

paros를 이용했다는 얘기를 해주신 분이 계시군요, 시간날 때 한번 뒤적뒤적 해 보겠습니다.

많은 분들이 기대를 해주셨는데, 이래서 안된다 저래서 안된다 라는 말씀만 드려서 많이 죄송하네요;
시간 날때 또 다른 방법으로 뜯어보겠습니다 ㅠ_ㅠ 감사합니다.

# by 워니 | 2007-02-20 01:23 | 컴이야기 | 트랙백 | 덧글(29)





트랙백 주소 : http://iwonny.egloos.com/tb/3007321
내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

Commented at 2007-02-20 03:20 # x




비공개 덧글입니다.


Commented by 민찬 at 2007-02-20 04:07 #




밸리에서 왔어요'ㅂ' 요즘 한창 싸이가 마음에 안들던 참인데;
특히 프로필 게시판 HTML안되는건-_-... 쳇,
유익한 글 몇개 잘 읽고 가요^^, 덧붙여 링크신고도 합니당 큐웃

Commented by 크리스티아누 at 2007-02-20 06:50 # x




http://solsolsiryo.tistory.com/787
며칠 전에 여기서 성공했었네요..

Commented by 발당 at 2007-02-20 09:12 # x




뱃사람 변태.


Commented by 워니 at 2007-02-20 09:35 #




비밀// 아, 감사합니다 ㅠ_ㅠ 연휴 잘 보냈죠 ~ 아, 따뜻한 리플덕에 더 죄송해지는군요, 시간내서 또 뜯어봐야겠다는 마음이..;;
민찬// 저도 싸이가 왠지 꺼림찍해서 안쓰고 있어요;; 와아 - 감사합니다ㅎㅎ
크리스티아누// 오, 여기도 남겨주셨네요 - 저분 처음으로 플래쉬를 이용해서 방문자 알아냈던 그분 블로그군요!! 지금 동영상이 끊겨있는데, 다시 살아나면 확인해 볼게요~
발당// 욱기지마-0- ㅋ

Commented by 쿠니쿠니 at 2007-02-20 09:51 # x




파로스를 이용해서 미니미 그림을 바꿔본적이 있습니다.
상당한 노가다였지요
그리고 미니룸 말풍선 글자 제한도 없애본적이 있지만.. 아무소용없더군요
위에서 말씀하신거와같이 <,>를 다른방법으로 기록해서;;;;

스토리룸을 어찌해보면 바꿔볼수 있을듯합니다.
지금 시도중이구요 ^^

Commented at 2007-02-20 11:02 #




비공개 덧글입니다.


Commented by 자유 at 2007-02-20 11:36 #




왜 이런 짓을 .. 찌질아 이런 거 하지 말고 밥이나 사줘 ;ㅁ;


Commented by 워니 at 2007-02-20 11:37 #




쿠니쿠니//
오오! 그렇군요! 멋집니다!!!
지금 뜯어보니 스토리룸은 말풍선 swf를 보낼 때 클라이언트에서 주소를 설정해서 보내는군요!!
와우, 멋집니다! ㅋㅋ 축하드려요~

회사에서 잠깐 뜯어보다가 사장님께 눈치보여 버렸습니다 ㅠ_ㅠ ㅎㅎ
시간날때 막히기전에 해봐야지~ㅋ
짜앙-_-)b ㅎㅎ

Commented by 에버태지 at 2007-02-20 11:58 # x




진짜 최악이다 너


Commented by 워니 at 2007-02-20 12:11 #




에버태지// 뭐야 이건


Commented by at 2007-02-20 13:13 # x




개인시간까지 쪼개서 도움을 주시려고 하시는군요. 감사할따름입니다.
성공하시리라 믿습니다.

Commented by 크리스티아누 at 2007-02-20 13:24 # x




워니님 파이팅~^^..ㅋ


Commented by 워니 at 2007-02-20 18:46 #




와아 와아 응원해주신 분들 감사합니다~
쿠니쿠니님 힌트덕분에 플래시 삽입 성공했네요 ㅎㅎ
이제 노가다 일이 남았는데, 하하하하
언제쯤 또 시간이 날지-_-a
(사장님께서 눈치 많이주셨어요 ㅠ_ㅠ )

Commented by 쿠니쿠니 at 2007-02-20 19:23 # x




워니// ㅊㅋㅊㅋ 합니다.

플래시가 상당히 화려하군요 ^^

Commented at 2007-02-20 19:32 #




비공개 덧글입니다.


Commented by lovely at 2007-02-20 19:46 # x




완전축하합니다~
이제 노가다에 응원을 보냅니다

where_chk 값은 초단위시간값과 사용자와 게시판종류에 따라서 달라지는 것 같군요
알고리즘하나는 풀었다는 분이 있는데 이걸 푸는 일보다는
플래쉬 올리기가 가능하니 스크립트를 심어서 다른 곳에 방법이 더욱 빠르겠네요^^

Commented by 하앜 at 2007-02-20 22:25 # x




오... 이제 스토리룸에 방문자 추적기능 나올날도 얼마 안남았군여....워니님 멋쟁이


Commented by sizzai at 2007-02-20 22:33 # x




우와 정말 대단하세요!!
이렇게 애써주시니 정말 감사합니다 ㅎㅎ

Commented by jsd9399 at 2007-02-20 22:48 # x




ㅋㄷ 드디어 올리셨군요... ㅋㅋ
축하드려요~~

Commented by 이니 at 2007-02-21 00:25 #




어렵다a 길다a 과외학생돌아왔다a


Commented by 크리스티아누 at 2007-02-21 02:18 # x




와우!!!축하드려요~ㅋ워니님 멋쟁이!!!
하지만 곧 싸이2가 나온다는 거~!
이번에도 싸이가 과연 막을런지ㅋ

Commented by spatialguy at 2007-02-21 11:08 # x




오빠멋져~


Commented at 2007-02-21 17:27 # x




비공개 덧글입니다.


Commented at 2007-02-21 22:00 # x




비공개 덧글입니다.


Commented at 2007-02-21 22:33 # x




비공개 덧글입니다.


Commented by 워니 at 2007-02-22 00:31 #




와아 응원 감사합니다^^ ㅎㅎ
아 정말 좀처럼 시간이 안나네요 ㅠ_ㅠ
1시에 자서 7시에 일어날때까지 이렇게 짬이 안날줄은 몰랐습니다 흑흑;;

급한대로 내일쯤 플래시 올리는 방법부터 적어 놓도록 하겠습니다,
(점심시간에 해야 눈치 안받겠네요 ㅋㅋ)

lovely// 정답~!! 경제학적으로 봤을때-_- 그게 더 좋겠죠? ㅎㅎ
하앜, sizzai, jsd9399// 와아 감사합니다~ 한 일에 비해서 더 많이 기뻐해주시니 몸둘바를 모르겠네요 ㅎㅎ
쿠니님// 축하드려요! 추적까지 성공하셨군요~ 와아 정보 감사합니다~
이니// 오, 졸축 -_-)b 과외생 함 보고싶을정돈데?
크리스티아누// ㅋㅋ, 아마도 이번 방법도 싸이측에서 막는건 5분이면 충분 할 것 같네요-_-a
spatialguy// -_-ㅋ 서버 들어갔어요? 관리 더 해야되는디;
비밀// 와아~ 그런것도 있었겠군요 ㅋ 넵 즐거운 하루 되세요~
비밀// 내일 올려드릴게요 ㅎㅎ
비밀// ㅎㅎ 전에도 말씀드렸지만, where_chk 변수는 방문자 추적하는데 전혀 필요가 없었죠? ㅎㅎ (기록하는데 필요할 뿐이니까요 ㅋ) 플래쉬만 올리시면 성공하시겠군요~
내일 올려볼게요 ㅎㅎ

Commented at 2007-02-22 00:39 # x




비공개 덧글입니다.


Commented by 수호전사 at 2007-03-02 10:39 # x




아,, 쓸때없는 얘기 죄송하지만,,,, 이게 싸이월드 말고 저같은 중딩이 많이하는 버디버디도 가능하군요,,
http://hompy.buddybuddy.co.kr/kcs5751 아바타가 개 발살 났습니다.

출처: ?http://iwonny.egloos.com/3007321