๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Web Hacking/Dreamhack

[Dreamhack] XSS-1 ๋“œ๋ฆผํ•ต ์›Œ๊ฒŒ์ž„ ๋ฌธ์ œ ํ’€์ด

by A Lim Han 2022. 9. 21.

2 - 0 - 2. XSS - 1 ์ทจ์•ฝ์  ๋ถ„์„ ์‹ค์Šต

 

 

 

# XSS - 1 ์ทจ์•ฝ์  ๋ถ„์„ ์‹ค์Šต

1. ๋ฌธ์ œ ์ •๋ณด ํ™•์ธ ๋ฐ ๋ฌธ์ œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

 

 

 

2. ์ ‘์† ์ •๋ณด ๋ณด๊ธฐ์—์„œ ์•ˆ๋‚ด๋œ http://host3.dreamhack.games:22929/ ๋งํฌ๋กœ ์ด๋™

flag ํŽ˜์ด์ง€์— ๋‚˜์˜จ ๋นˆ์นธ์„ ์ฑ„์šฐ๋Š” ๋ฌธ์ œ

 

 

 

3. ๋ฌธ์ œ ํŒŒ์ผ ์† ์ฝ”๋“œ ๋ถ„์„

+ << Line 16 ~ 39 >>

: read_url ํ•จ์ˆ˜ ์‹คํ–‰ 

-->  driver.get('http://127.0.0.1:8000/') ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋กœ์ปฌํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์›นํŽ˜์ด์ง€์— ์ ‘์† 

-->  driver.add_cookie(cookie) ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•œ ์›น ํŽ˜์ด์ง€์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์˜จ cookie ์ถ”๊ฐ€

-->  driver.get(url) ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์˜จ xss ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ xss ํŽ˜์ด์ง€ ์ ‘์†

 

+ << Line 58 ~ 67 >>

: POSTํ•˜๋Š” ๊ณผ์ •์—์„œ check_xss ํ•จ์ˆ˜ ์‹คํ–‰

: check_xss ํ•จ์ˆ˜  -->  read_url ํ•จ์ˆ˜๋ฅผ ๋™์ž‘์‹œ์ผœ flag ์ฟ ํ‚ค ์ƒ์„ฑ

 

 

 

4. ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ถ„์„

+ flag ํŽ˜์ด์ง€๋Š” input ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „์†กํ•จ

-->  memo ํŽ˜์ด์ง€๋กœ ํƒˆ์ทจํ•œ ์ด์šฉ์ž์˜ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด ์ถœ๋ ฅํ•˜๋ฉด FLAG๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ

 

+ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด <script> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด XSS ๊ณต๊ฒฉ์—์„œ ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ๋™์ž‘ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ

 

+ ์ฝ”๋“œ์˜ ์ž…์ถœ๋ ฅ ๊ณผ์ •์—์„œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณ„๋„์˜ ๊ฒ€์ฆ ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š์Œ์„ ์ด์šฉ

-->  ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฝ”๋“œ ๊ทธ๋Œ€๋กœ๋ฅผ ์‹คํ–‰

 

+ ์ถ”๊ฐ€์ ์œผ๋กœ ์•„๋ž˜์˜ ์†์„ฑ๊ฐ’์„ ์ด์šฉ

location.herf document.cookie
URL ๋ฐ˜ํ™˜ ๋ฐ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์†์„ฑ๊ฐ’ ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฟ ํ‚ค๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์†์„ฑ๊ฐ’

 

 

 

5. ๋‹ค์‹œ flag ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€ ๋นˆ์นธ์— <script> location.href=“/memo?memo=”+document.cookie; </script> ์ž…๋ ฅ

 

์ •์ƒ์ ์œผ๋กœ ์ž…๋ ฅ๋˜์—ˆ์„ ๊ฒฝ์šฐ good ์ถœ๋ ฅ

+ <script> location.href=“/memo?memo=”+document.cookie; </script>

-->  memo ํŽ˜์ด์ง€์— ์ƒ์„ฑํ•œ ์ฟ ํ‚ค๊ฐ’ ์ถœ๋ ฅ

 

 

 

6. good์ด ์ถœ๋ ฅ๋œ ํ›„ ๋‹ค์‹œ memo ํŽ˜์ด์ง€๋กœ ์ ‘์†  -->  FLAG ๊ฐ’ ํ™•์ธ ๊ฐ€๋Šฅ

FLAG๋Š”&nbsp;DH{2c01577e9542ec24d68ba0ffb846508e}