Bypassing with special chars in XSS exploit

Bypassing with specialchars in XSS Exploit 가끔 XSS 공격을 하다보면 다양한 WAF, 혹은 어플리케이션 자체의 필터링에 걸리는 경우가 발생한다. 이 경우엔 Javascript의 자유도(?) 덕분에 쉽게 우회할 수 있는 여지가 있다. 이러한 Javascript의 자유도는 서로 다른 객체 타입끼리의 연산을 수행하는 과정에서 발생하게 된다. 다음과 같은 예시 상황을 보자. [1,2,3,4]+"hello world" // "1,2,3,4hello world" 위의 경우엔 number로 이루어진 배열(Object)과 문자열간의 concat 연산을 하는 경우이다. 보다시피 object가 string으로 변환되어 있는 결과를 얻을 수 있다. 이러한 관점으로 조금 더 다채로운 객체와..

XSS awesome confirm variants

CTF에서 XSS exploiting 문제가 나오면 유용하게 사용할 수 있는 페이로드들. confirm() confirm`` (((confirm)))`` co\u006efirm() new class extends confirm``{} [8].find(confirm) [8].map(confirm) [8].some(confirm) [8].every(confirm) [8].filter(confirm) [8].findIndex(confirm) 아래의 Array 기반으로 함수를 실행하는 방식은 Javascript의 callback 함수를 이용하여 confirm() 함수를 실행시킨 것이다.