SWLUG/μ›Ή ν•΄ν‚Ή

[xss-game] Level 5: Breaking protocol

waterproof 2023. 11. 6. 19:24

 

 

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

 

 

 

 


[1] 문제 탐색

 

 

 

문제 화면이닀.

 

해석을 해보면,

 

μž„λ¬΄ μ„€λͺ…
크둜슀 μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ…μ€ λ‹¨μˆœνžˆ 데이터λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ΄μŠ€μΌ€μ΄ν”„ν•˜λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. λ•Œλ‘œλŠ” κ³΅κ²©μžκ°€ DOM에 μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μ‚½μž…ν•˜μ§€ μ•Šκ³ λ„ λ‚˜μœ 일을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μž„λ¬΄ λͺ©ν‘œ
alert()μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…μŠ€νŠΈμ—μ„œ νŒμ—…μ„ ν‘œμ‹œν•˜λŠ” 슀크립트λ₯Ό μ‚½μž…ν•©λ‹ˆλ‹€ .

 

 

라고 ν•œλ‹€.

 

 

였늘 μƒˆλ‘œμš΄ 베타 groovy 2.0을 λ°œν‘œν•œλ‹€κ³  ν•œλ‹€.

sign up 을 눌러보자.

 

 

 

e-mail을 μž…λ ₯ν•œ λ’€ nextλ²„νŠΌμ„ λˆ„λ₯Ό 수 μžˆλ„λ‘ λ˜μ–΄μžˆλ‹€.

μœ„μ˜ URL을 λ³΄μ•˜μ„ λ•Œ, /signup νŽ˜μ΄μ§€μ— next νŒŒλΌλ―Έν„°λ‘œ confirm을 μ „μ†‘ν•˜λŠ” κ²ƒμœΌλ‘œ 보아,

μž…λ ₯ν•˜κ²Œ λ˜λŠ” e-mail값을 톡해 xss 곡격을 ν•˜λŠ” 것이 μ•„λ‹Œμ§€... μ˜ˆμƒν•΄λ³΄μ•˜λ‹€.

 

 

 

κ·Έλž˜μ„œ 일단 이메일 μž…λ ₯ 칸에 μ €λ ‡κ²Œ μž…λ ₯을 ν•΄λ΄€λ”λ‹ˆ...

 

 

 

λ‹€μ‹œ 초기 ν™”λ©΄μœΌλ‘œ λŒμ•„μ˜€κ³  아무 변화도 생기지 μ•Šμ•˜λ‹€.

 

 

감을 μž‘μ„ 수 μ—†μ–΄μ„œ 힌트 4개λ₯Ό λ‹€ ν™•μΈν–ˆλ‹€.

 

 

1. 이 레벨의 제λͺ©μ΄ 힌트

2. signup frame의 μ†ŒμŠ€λ₯Ό λ³΄λŠ” 것과 URL νŒŒλΌλ―Έν„°κ°€ μ‚¬μš©λ˜λŠ” 것을 λ³΄λŠ” 것이 μœ μš©ν•˜λ‹€.

3. onclick ν•Έλ“€λŸ¬λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  링크λ₯Ό ν΄λ¦­ν•˜λ©΄ Javascriptκ°€ μ‹€ν–‰λ˜λ„λ‘ ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν•˜λ‚˜?

4. μ§„μ§œ λ§‰νžˆλ©΄, https://datatracker.ietf.org/doc/html/draft-hoehrmann-javascript-scheme-00 μ—¬κΈ°λ₯Ό λ³΄λΌλŠ”λ°...

 

 

 

μš°μ„  이 레벨의 제λͺ©μ€ "Breaking protocol" 이닀.

λ‚˜μ—κ² 도움이 λ˜μ§€ μ•Šμ•˜λ‹€.

 

 

κ·Έ λ‹€μŒμœΌλ‘œ signup frame의 μ†ŒμŠ€λ₯Ό 보라고 ν–ˆλŠ”λ°,

μ•„λ§ˆ signup.html을 λ³΄λΌλŠ” 뜻인 것 κ°™μ•„ 확인해보도둝 ν•˜κ² λ‹€.

 

 

signup.html

<!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="level5">
    <img src="/static/logos/level5.png" /><br><br>
    <!-- We're ignoring the email, but the poor user will never know! -->
    Enter email: <input id="reader-email" name="email" value="">
 
    <br><br>
    <a href="{{ next }}">Next >></a>
  </body>
</html>

 

 

이 뢀뢄을 보면, Next λ₯Ό λˆŒλ €μ„ λ•Œ next μΈμžμ˜ κ°’을 κ°€μ§„ λ§ν¬λ‘œ μ΄λ™ν•˜λŠ” κ²ƒμ„ μ•Œ μˆ˜ μžˆλ‹€.

 

 

11번 μ€„μ—μ„œ 이런 문ꡬ가 μ ν˜€μžˆλŠ” 것을 보고, confirm.html을 ν™•μΈν•΄λ³΄μ•˜λ‹€.

 

 

confirm.html

 

이와 같이, confirm.html 의 μ†ŒμŠ€μ½”λ“œλ₯Ό λ³΄λ‹ˆ email 값은 μ „λ‹¬λ˜μ§€ μ•Šκ³  μžˆλ‹€.

λ•Œλ¬Έμ— URL μ—μ„œ μž…λ ₯ν•  수 μžˆλŠ” next 값을 톡해 XSS 곡격을 μˆ˜ν–‰ν•΄μ•Ό ν•œλ‹€.

μœ„μ™€ 같이 URL 둜 μž…λ ₯받은 next 값은 confirm.html μ—μ„œ window.location μ•ˆμ— λ“€μ–΄κ°€κ³  μžˆλ‹€.

 

 

 

 

 

 

 

Next 링크λ₯Ό 클릭할 λ•Œ, 쑰건문이 μ‘΄μž¬ν•œλ‹€κ³  ν•œλ‹€.

 

 

1. next κ°’에 signup μ΄ ν¬ν•¨λ˜λ©΄ signup.html λ‘œ μ΄λ™
2. next 값에 confirm 이 ν¬ν•¨λ˜λ©΄ confirm.html 둜 이동
3. next 값이 1,2 μ΄μ™Έμ˜ 값이면 welcome.html 둜 이동

 

2번 쑰건의 경우 confirm 을 ν¬ν•¨ν•œ μ–΄λ–€ next 값을 주어도 λͺ‡ 초 뒀에 λͺ¨λ‘ welcome.html 둜 μ΄λ™ν•˜μ˜€λ‹€. next 값을 welcome 으둜 λ°”κΏ”μ£ΌλŠ” 둜직이 μ‘΄μž¬ν•˜λŠ” 것 κ°™λ‹€κ³  ν•œλ‹€.

 

 

λ”°λΌμ„œ signup.html에 슀크립트λ₯Ό μ£Όμž…ν•˜μ—¬ alert()λ₯Ό νŒμ—…ν•΄μ•Ό ν•œλ‹€.

링크둜 alert() λ₯Ό μ‹€ν–‰ν•˜λŠ” 방법 쀑에  javascript:alert() λ₯Ό μ΄μš©ν•˜λŠ” 방법이 μžˆλ‹€κ³  ν•œλ‹€.

 

 

 

이λ₯Ό μ΄μš©ν•˜μ—¬ XSS λ₯Ό μˆ˜ν–‰ν•΄λ³΄λ©΄,

 

next κ°’ : javascript:alert(1)
μ μš©λ˜λŠ” <a> νƒœκ·Έ : <a href = "javascript:alert(1)">Next >></a>

 

 

 

 

μ •λ‹΅!

 

 


[2] μ°Έκ³ 

 

https://binwalk.tistory.com/124

 

XSS game - Level 5

Level 5 μ‹œμž‘! 별닀λ₯Έ μž…λ ₯κ°’ 없이 Sign up 링크만 μžˆλ‹€. Sign up 을 λˆ„λ₯΄λ©΄ email 을 μž…λ ₯ν•˜λŠ” signup.html 둜 μ΄λ™ν•œλ‹€. Next λ₯Ό λˆ„λ₯΄λ©΄ 또 λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜κ³  url λ₯Ό 보면 next 인자λ₯Ό 톡해 μ–΄λ–€ 값을 μ „

binwalk.tistory.com

 

 

https://raise-meow.tistory.com/232

 

[level5] Breaking protocol :: XSS game

DOM에 슀크립트λ₯Ό μ‚½μž…ν•˜μ§€ μ•Šκ³  문제λ₯Ό ν’€μ–΄μ•Ό ν•œλ‹€κ³  ν•œλ‹€. DOMμ΄λž€ λ¬΄μ—‡μΌκΉŒ? 더보기 Document Object Model μ›Ή νŽ˜μ΄μ§€(HTML)에 λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€ 1. λ·° ν¬νŠΈμ— 무엇을 λ Œλ”λ§ ν•  지 κ²°μ •ν•˜κΈ° μœ„ν•΄ μ‚¬μš© 2

raise-meow.tistory.com

 

 

'SWLUG > μ›Ή ν•΄ν‚Ή' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[webhacking.kr] Challenge old-23  (0) 2023.11.09
[Dreamhack/λ“œλ¦Όν•΅] xss-2  (0) 2023.11.06
[Dreamhack/λ“œλ¦Όν•΅] xss-1  (0) 2023.11.05
[Dreamhack/λ“œλ¦Όν•΅] DOM XSS  (0) 2023.11.05
[los.rubiya.kr] orc  (1) 2023.10.07