일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CTF
- Wargame
- webhacking.kr
- 웹개발
- 정보보안
- sql injection bypass
- web hacking
- 개발자
- hackthissite
- burp suite
- pythonprogramming
- Bandit
- root me
- system hacking
- WebHacking
- XSS GAME
- overthewire
- 웹해킹 기초
- geminipro
- Over The Wire
- 테크트렌드
- 코딩
- write up
- 웹해킹
- 인공지능
- lord of sqlinjection
- 사이버보안
- web-server
- 프로그래밍
- SQL Injection
- Today
- Total
컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지
XSS-game level 4 본문
4단계
4단계를 살펴보면
미션 설명:
사용자가 제공한 모든 데이터는 해당 데이터가 나타날 페이지의 컨텍스트에서 올바르게 이스케이프 되어야 합니다.
이 레벨은 그 이유를 보여준다.
미션 목표: 밑에 단계와 동일하게 alert()를 발생시키면 된다.
일단 화면에 timemer이 써져있고 밑에 숫자 3이 적혀 저 있다 Create timer을 누르면
다음과 같은 화면이 나온다.
타겟 코드를 살펴보자
타겟 코드에서 timer.html을 살펴보면
<img src="/static/loading.gif" onload="stratTimer('{{ timer }}');" />
이렇게 되어있는데
타이머의 시간이 {{ timer }} 이렇게 들어간다 그럼 어떻게 코드를 넣으면 XSS 공격을 성공시킬 수 있을까 고민해 보면
"startTimer('1');onerror=alert('1');" /> 이렇게 되면 XSS 공격이 성공할 것이다.
즉
https://xss-game.appspot.com/level4/frame?timer=1');onerror=alert('1 넣고 Go를 눌러보자.
어? 하지만 작동되지 않았다.
밑에 글을 살펴보니 Your timer will execute in 1') seconds. 즉 ;(세미클론) 뒤의 문장부터는 출력이 되지 않았다.
;을 URL 인코딩하여 신호를 줘야 하는 것 같다.
;을 URL 인코딩하면 %3B이므로
?timer=1')%3Bonerror=alert('1이라고 입력하고 Go를 누르면
문제를 해결할 수 있다.
'해킹 > Web hacking' 카테고리의 다른 글
XSS-game level 6 (2) | 2023.02.02 |
---|---|
XSS-game level 5 (0) | 2023.02.02 |
XSS-game level 2, 3 (0) | 2023.01.31 |
XSS 공격에 대하여! (0) | 2023.01.30 |
hackthissite/basic/8번 풀이 (0) | 2022.11.24 |