Review on recent xss tricks (몇가지 XSS 트릭들 살펴보기)

Review on recent xss tricks (몇가지 XSS 트릭들 살펴보기)

XSS 테스트 벡터들 자주 찾아보곤(또는 공유받거나 눈에 걸리거나..) 하는데 최근에 포스팅 쓸만큼 특별한건 없었고 간단한 트릭정도 몇개 올라와서 정리해서 한번에 글 작성합니다.

details 태그 + ontoggle + open

details 태그에 open, ontoggle 속성을 이용해서 바로 스크립트 실행이 가능합니다. ontoggle은 details 태그 부분이 선택(?)되었을 때 트리거되는데, open 속성으로 바로 열 수 있어 즉시 트리거가 가능합니다. (details 태그 그거에요.. 더보기, 아주 옜날에는 직접 만들어쓰셨겠지만, html5에 포함되어 이젠 태그로 쉽게 구현이 가능합니다.)

<dETAILS/open/onToGgle=a=prompt,a(45) x>

여담으로 태그 내 속성 구별 구간에서 개행문자 삽입 시 akamai ghost에서 필터링 패스할 수 있다고 하네요.

<!-- bypass Akamai Ghost -->
<dETAILS%0aopen%0aonToGgle%0a=a=prompt,a(45) x>

output 태그와 &NewLine;

처음에 새로운 방법인가 했는데, 결국은 onclick의 eval로 코드를 실행하는 형태입니다. 다만 눈여겨 볼껀 &NewLine;의 존재입니다. (전 저렇게 쓰는거 첨봐서…)

<output name="jAvAsCriPt://&NewLine;\u0061ler&#116(1)" onclick="eval(name)">X</output>

XSS Payloads 쪽에 New Vector라고 올라와서 좀 의아했었는데, 다르분도 비슷하게 생각했더군요. 결국은 원작자도 트릭을 이야기한 것 뿐.

iframe srcdoc + window.name

마지막으로 요런 코드가 하나 나돌았었늗네요, iframe 가지고 약간 장난친 케이스입니다.

p.html

<script> window.name =`<script>alert(45)<\/script>`; document.location="./v.html" </script>

v.html

<iframe/onload=srcdoc=window.name > 

p.html에서 window.name에 실제 동작할 공격코드 저장 후 location이 바뀐 뒤 해당 페이지의 iframe에서 onload로 JS영역으로 흘린 후 srcdoc에 window.name에 있던 데이터(

onload에서 이미 js 구무을 넘겼다느 점에선 XSS 삽입 부분에선 특이한게 없었고, 공격 코드를 다른 페이지에 두고 사용하는 방법 정도로 생각하심 될듯합니다.