Xss game level 5 write up
#번역
미션 설명 : XSS는 데이터를 올바르게 이스케이프 처리하는거에 멈추지 않습니다. 때로는 공격자가 Dom에 새 요소를 주입하지 않고도 나쁜일을 할 수 있습니다.
미션 목표 : alert()를 넣어서 팝업 스크립트를 삽입하시오.
#분석
Dom에 스크립트를 삽입하지 않고 푸는 문제라는게 무슨 뜻일까?? 풀면 알 듯하다.
hint
1. 제목이 힌트이다.
2. 가입 프레임의 소스를 보고 URL 매캐 변수가 어떻게 사용되는지 살펴보는것이 좋다.
3. onclick 핸들러를 사용하지 않고 링크를 클릭하여 javascript를 실행하게 하려면 어떻게 해야 되는가?
4. 진짜 안 풀리면 IETF 초안을 살펴보자. (https://tools.ietf.org/html/draft-hoehrmann-javascript-scheme-00)
의심스러운 것!
<
script
>
setTimeout(function() { window.location = '{{ next }}'; }, 5000);
</
script
>
이 부분이 의심스러웠음. timeout을 하는 곳에 스크립트를 추가해서 하는건가?!
next는
<
a
href
=
"{{ next }}"
>Next >></
a
>
이렇게 링크를 클릭하면 next를 받아서 넘어가도록 코딩해놓음.
next변수가 get방식으로 하여 url에 드러나니 url로 스크립트를 전달하면 된다.
url로 스크립트를 전달하는 것이 Dom에 스크립트를 삽입하지 않고 문제를 푸는 것일까??
" "안에 있는 내용은 내 생각임을 밝힘. 틀리면 말해주세여. 내가 이해한 내용이 틀렸다는거니까!
** Dom : Document Object Model 문서 객체 모델은 HTML 및 XML 문서를 처리하는 API라고 합니다. 문서의 구조적 형태를 제공하므로 자바스크립트와 같은 스크립트 언어를 사용하여 문서 내용과 시각적 표현을 수정할 수 있습니다.
"문서를 구조화시키고 Dom이 이해해서 추상화를 시킨다. 여기서 추상화란, 핵심적인 개념을 뽑는 활동으로 생각했다. 추상화를 시켜서 그를 이미지화하여 브라우저에 보이게 하는 역할을 한다고 생각함. "
** API : 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻함.
"인터페이스란 다른 언어를 사용하고 있는 매체들 사이에서 의사소통이 가능하도록 하는 것을 말한다고 한다. 그러므로 프로그램에서 운영체제와 프로그래밍 언어를 제공할 수 있도록 만드는 의사소통 가능하게 만드는 것이라고 생각함"
next 변수를 활용하는 건 알았는데, next변수에 alert()를 넣고 Go를 눌러도 아무 반응이 없었다.
Go를 누르는게 아닌거같다. next 링크가 url에 있는대로 가서 바꿔주지 않으면 confirm으로 가게 되는데, 이것을 팝업창을 띄어주는 스크립트를 넣으면 된다. 이런게 Dom에 스크립트를 추가하지 않고 실행하는 예시인듯하다.
#익스
https://xss-game.appspot.com/level5/frame/signup?next=javascript:alert('yeali');
을 넣고, next를 누르면 뜸.
'WebHacking > Xss-game Write-Up' 카테고리의 다른 글
Xss game level 6 write up (0) | 2018.07.17 |
---|---|
Xss-game level 4 write up (0) | 2018.07.17 |
Xss game level 3 write-up (0) | 2018.07.17 |
Xss-game level 2 write_up (0) | 2018.07.17 |
Xss-game level 1 write-up (0) | 2018.07.17 |