본문 바로가기

보안/XSS

(4)
CSP란? CSP란 Content Security Policy의 약자로 XSS나 데이터를 삽입하는 류의 공격이 발생하였을때 피해를 줄이고웹관리자가 공격 시도를 보고 받을 수 있도록 새롭게 추가된 보안계층이다 어떻게 피해를 줄이는데?웹페이지에 사용될 수있는 자원의 위치,출처 등에 제약을 걸어서 공격을 막는다 CSP 헤더는 1개 이상의 정책 지시문이 세미콜론(;)으로 분리된 형태로 이루어져있다정책지시문 EX) default-src, script-src 등 과 1개 이상의 출처  EX) 'self', https:, *.dreamhack.io 등 공백으로 분리된 형태로 지정해야한다 CSP를 적용하는방법HTTP헤더의 추가하는방법:Content-Security-Policy: default-src 'self' https://e..
자바스크립트 필터링 우회하는방법 1.자바스크립트는 유니코드로 문자를 표현할수있다 var foo = "\u0063ookie"; // cookievar bar = "cooki\x65"; // cookie\u0061lert(document.cookie); // alert(document.cookie)  2. Computed member access 뭔지잘몰라 걍  EX)document["coo"+"kie"] == document["cookie"] == document.cookie alert(document["\u0063ook" + "ie"]); // alert(document.cookie)window['al\x65rt'](document["\u0063ook" + "ie"]); // alert(document.cookie) 3.alert우회..
XSS 우회하는 방법 모음 1. 문자열 치환될때 : XSS키워드를 필터링할때 단순하게 치환 혹은 제거하는방식의 필터링이 존재한다 이경우 scrscriptipt로 입력하면 script가 필터링되어 script로 만들어낼수있다  EX) 에서 onerror에가 제거되면서 로 변한다2.특수문자를 사용하여 우회하기 EX) "\1\4jAVasC\triPT:alert(document.domain)">Click me! 를 입력하면  \뒤에 있는 값이 제거되어 "jAVasCriPT:alert(document.domain)">Click me!와 똑같아진다3.html entity 인코딩을한다 예를들면 같은 특수한기호들을 속성내에 넣을때 잘못인식할수도있으므로 html entity인코딩이라는것을 만들었다 그래서 html에서 인코딩한값을 넣으면 디코..
XSS공격 가능한 태그,속성 모음 1.script   EX)   를입력하면 XSS공격성공이라고 써져있는 alert가 뜬다2.onload EX) img src="https://dreamhack.io/valid.jpg" onload="alert(document.domain)"> 를 입력하면 태그가 요청하는 데이터를 로드한후  웹페이지의 도메인이름을 띄어준다3.onerror EX) img src="valid.jpg" onerror="alert(document.domain)"> 를 입력하면 태그가 요청하는 데이터를 로드하는데 실패하면 웹페이지의 도메인이름을 띄워준다 즉 onload와 반대되는 태그이다onfocus EX) input type="text" id="inputID" 4.onfocus="alert(document.domain)" auto..