본문 바로가기

WARGAME/xss-game [web]

(6)
xss-game / Level 6: Follow the 🐇 [write-up] - 복잡한 응용프로그램의 경우 url 파라미터나 location.hash를 기반으로 javascript 라이브러리를 동적으로 로드할 수 있는 공간이 있다. - 스크립트 또는XML HttpRequest와 같은 잠재적으로 위험한 다른 유형의 데이터를 로드 할 때 사용자 입력이URL에 영향을 주도록 허용하면 심각한 취약점이 발생할 수 있다. - 응용 프로그램이 외부 파일을 요청하여alert ()을 실행시키는 방법을 찾아라. 힌트를 보자. 1. url 에서 #뒤의 문자열이 화면 스크립트에 어떻게 반영되는지 보라. 2. 가젯의 url보안 검사가 정말 안전한가? 4. google.com/jsapi?callback=foo 을 통해 해결할 수 있다. 흠..... 일단 # 뒤 문자열을 수정해보자. # 뒤에 입력한 hey..
xss-game / Level5 : Breaking protocol [write-up] 이 level 에서의 제목이 힌트이며, signup 프레임의 소스를 보면서 url 파라미터가 어떻게 사용되는지 보도록 할 것. onclick 핸들러 없이 자바 스크립트 실행이 가능할지? 정도의 힌트가 주어졌다. 일단 url 에 alert()를 다양하게 넣어보자. http://xss-game.appspot.com/level5/frame/signup?next=alert('1'); 이렇게 입력하고 go 버튼을 눌러도 안되고, next 라는 href 를 눌러도 alert 가 뜨지 않는다. 구글링을 통해 alert() 앞에 javascript: 를 입력해 해결할 수 있다는 것을 알게 되었다. http://xss-game.appspot.com/level5/frame/signup?next=javascript:aler..
xss-game / Level4 : Context matters [write-up] create timer 버튼을 누르면 로딩 화면이 나오고 3초 뒤에 alert 창이 뜬다. 한번 힌트를 보자. startTimer 함수가 어떻게 호출되는지를 살펴보고, 브라우저가 html 디코딩을 할 때에는 값을 먼저 디코딩한다는 점을 힌트로 주고 있다. 또 한번 싱글 쿼터를 넣어서 에러가 어떻게 나는지 확인해보라고 하니 한번 해보자. 이렇게 계속 로딩이 되는 에러가 발생한다. 이제 프레임 소스 보기로 startTimer 함수를 확인해보자. 아까 입력한 ‘ 가' 로 setTimer 함수에게 전달되는 것을 볼 수 있다. 우리는 이 자리에 alert()를 넣어야한다. startTimer(‘1’); alert( ‘1 ‘);” /> 이렇게 입력해주면 될 듯 하다. 그러나 실패. 그래서 ; 를 인코딩해서 ..
xss-game / Level3 : That sinking Feeling... [write-up] 설명을 보면 url 주소를 수정해서 alert를 띄우라는 소리 같은데 url 끝에 를 입력해도 되지 않는다. 힌트를 살펴보자. 이번에도 태그는 막혔다는 내용과, window.location을 사용하라는 듯한 힌트가 주어졌다. 이번엔 프레임 소스 보기를 통해서 어떻게 인자가 전달되고 있는지, html 태그 형태가 어떤지 확인해보자. 이미지1을 클릭하면 num에 1 이, 이미지2를 클릭하면 num에2가, 들어가서 동적으로 연결된다는 것을 알 수 있다. img 태그가 이미 사용되고 있기 때문에 여기서도 onerror 를 사용해서 풀어볼 수 있을 것 같다. url의 # 뒤에'aaaa.png' onerror=alert()> 를 붙여 onerror함수가 실행되도록 하면, 해결!
xss-game / Level2 : Persistence is Key [write-up] level1 에서 풀었듯 alert 를 띄우기 위해 그냥 alert()를 입력해도 작동되지 않았다. 힌트를 보면 라는 태그는 필터링이 되고 있고, img 를 통해 풀 수 있으며 onerror를 통해 해결할 수 있다고 한다. 이 힌트들을 조합해서 img 태그에 error를 발생시킬만한 아무 url 이나 입력한 후, onerror 에 내가 원하는 명령을 넣으면 된다는 것 같다. 출처 - https://brillian-ye.tistory.com/7 따라서 를 입력하면, 해결! 이 문제를 통해 태그가 필터링 되었을 경우 우회할 수 있는 또 다른 태그와 onerror 함수를 새로 알게 되었다.
xss-game / Level1 : Hello, world of XSS [write-up] 스크립트를 주입해서 alert 창을 띄우라는 문제. 입력. 성공!