Skandia

 

 

문제


 

 

 

 

 

 

문제해석


 

 

 

문자를 입력하면 대문자로 치환된다.

 

 

 

 

풀이


 

 

 

HTML entity를 이용하여 해결하였다. 

HTML entity : HTML 문서를 코딩할 때 태그와 혼용되는 것을 막기 위해 브라우저 상에 예약된 문자

 

HTML entity는 JavaScript를 해석하기전에 미리 해석되기 때문에 script가 해석 될 때에 alert(1)로 인식하여 문제가 풀린다.

 

 

 

#뒤에 x를 통해 16진수로 사용가능하다

 

 

Input :</script><iframe/onload=&#x61&#x6C&#x65&#x72&#x74(1)//

 

 

 

 


처음 시도했던 것

 

 

 

원래 문제 풀때에 처음 시도했던 방법이다.

 

 

 

Input : "+'\141\154\145\162\164\50\61\51'+"

 

 

Warmup때 썻던 방법을 응용하여 공격할 수 있을 줄 알았는데 Javascript 단에서 해석이 되기때문에 alert()로서의 기능은 수행되지 않고 문자열로서만 변환이 되어 공격이 안된 것 같다.

 

 

 


다른 풀이

 

 

 

url encoding 을 이용하는 방법

data:, 뒤에 url 인코딩하여 사용할 수 있는 방법으로 해결하였다.

 

Input : </script><script src=data:,%61%6C%65%72%74(1)>

 

 

 

 


이외에

 

 

 

저번에도 사용했던 \u0061 js에서 해석되는 문법

 

 

svg일때 크롬 오류로 html entitiy를 해석하는 것

<svg><script>alert&#28;1)</script>

 

태그에도 우선순위가 있음!
<title><a href="</title><svg/onerror=alert(1)>

 

를 알게 되었땅

'Web hacking > alert(1) to win' 카테고리의 다른 글

alert(1) to win - JSON3  (0) 2019.11.26
alert(1) to win - callback2  (0) 2019.11.10
alert(1) to win - JSON2  (0) 2019.11.10
alert(1) to win - markdown  (0) 2019.11.10
alert(1) to win - 1  (0) 2019.11.10

+ Recent posts