CTF, War game

[Dreamhack] Level 1: xss-2

mnzy๐ŸŒฑ 2024. 3. 20. 15:15

1. ๋ฌธ์ œ

https://dreamhack.io/wargame/challenges/268

 

xss-2

์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๊ณผ ์ž…๋ ฅ๋ฐ›์€ URL์„ ํ™•์ธํ•˜๋Š” ๋ด‡์ด ๊ตฌํ˜„๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. XSS ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ํ”Œ๋ž˜๊ทธ๋Š” flag.txt, FLAG ๋ณ€์ˆ˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ž˜๊ทธ ํ˜•์‹์€ DH{...} ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ์ˆ˜์ • ๋‚ด์—ญ

dreamhack.io


2. ํ•ด๊ฒฐ ๊ณผ์ •

xss-1๊ณผ ์ฝ”๋“œ๋Š” ๋น„์Šทํ•˜์ง€๋งŒ, ํฐ ์ฐจ์ด์ ์ด ์žˆ๋‹ค. 

@app.route("/vuln")
def vuln():
    return render_template("vuln.html")

 

์ด ๋ถ€๋ถ„์ด๋‹ค. ๋™์ ์œผ๋กœ ํ…œํ”Œ๋ฆฟ์„ ๋ Œ๋”๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ xss-1์—์„œ๋Š” ํŒŒ๋ฆฌ๋ฏธํ„ฐ๋ฅผ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๋‹ค. 

๋”ฐ๋ผ์„œ, vuln ํŽ˜์ด์ง€์—์„œ ๋‹ค์–‘ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์–ด ์–ด๋–ค ํƒœ๊ทธ๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด๋ณด์•„์•ผ ํ•œ๋‹ค.

 

<script></script> ๋Š” ํ•„ํ„ฐ๋ง๋˜๋Š” ๋ชจ์Šต์ด๋‹ค. 

 

๋”ฐ๋ผ์„œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค.

img src ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ onerror๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์•˜๋”๋‹ˆ, alert์ฐฝ์ด ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

๋”ฐ๋ผ์„œ, vuln์˜ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜์—ฌ flagํŽ˜์ด์ง€๋กœ ๊ฐ€์„œ ๋ฉ”๋ชจ ํŽ˜์ด์ง€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

<img src="x" onerror="location.href='../memo?memo=' + document.cookie" />

 

 

์„ฑ๊ณต