본문 바로가기

웹/xss

XSS challenges 7,8,10,15

XSS challenges 7,8,10,15입니다. 11~14가 없는 이유는 11번은 문제가 날아갔고 12~14번은 구버전 IE 브라우저에서만 풀수 있다고 합니다.

 

7번

7번은 6번과 매우 비슷했습니다. 그런데 6번처럼 입력을 하면

위처럼 더블 쿼터가 남고 뒷 부분 괄호가 충족이 되지 않는 것을 알 수 있습니다. 그래도 이벤트 핸들러는 정상적으로 넣을 수 있기 때문에 조금만 수정해서 문제를 해결했습니다.

8번

8번 문제입니다. 버튼을 보니 링크를 만들어주는 버튼인 거 같긴합니다. 그래서 hi를 입력한 뒤 소스코드를 확인했습니다.

href 부분에 hi가 들어간 것을 알 수 있습니다. 이 형태는 XSS game 2번을 해결할 때 썻던 a 태그에 속성을 넣어준 것과 매우 유사합니다.

<a href="javascript:alert(1)">Link</a> 이것과 그냥 같은 것이라고 생각하면 됩니다. 그래서

입력 창에 javascript:alert(document.domain)를 넣어줘서 클릭하면 alert가 실행되고 문제를 해결했습니다.

 

10번

10번입니다. 항상 썻던 페이로드인 "><script>alert(document.domain);</script> 를 넣어보니 아래처럼 소스코드에 뜹니다.

아마 domain이라는 글자가 필터링되는 것 같습니다. 그래서 sfw6번이나 sql injection할 때 썻던 우회방법인 domain사이에 domain을 넣어주어 alert를 띄웠습니다.

 

정답 : "><script>alert(document.dodomainmain);</script><"

15번

15번은 document.write()를 사용하는 문제입니다. document.write html에 인자에 적힌 값을 적는 함수(?)라고 할수 있습니다. 여기서 보면 <,> 문자 2개가 필터링되어 있는데, 인터넷에 찾아보니 <,>를 \x3c, \x3e로 입력해도 document.write에서는 <,>로 인식한다고 합니다. 그런데 여기서 문제의 코드가 \x를 x로 필터링되기 때문에 앞에 \를 하나 더 붙여줘서 페이로드를 완성했습니다.

 

정답 : \\x3cscript\\x3ealert(document.domain); \\x3c/script\\x3e

 

그러면 아래처럼 저희가 원하는 내용을 적을 수 있습니다.

' > xss' 카테고리의 다른 글

XSS challenges 1~6  (0) 2021.01.09
XSS-game  (0) 2020.12.30