๐ธ๏ธ ์น ํดํน7 [wargame] ๋๋ฆผํต xss-2 ๋ฌธ์ ํ์ด ๊ฒ๋ณด๊ธฐ์ xss-1 ์์ ์ ๋น์ทํ๋ค. xss-1 ์์ ์์๋ memo ํ์ด์ง ์๋ํฌ์ธํธ์ document.cookie๋ก ์ฟ ํค๋ฅผ ํ์ทจํด ํ๋ผ๋ฏธํฐ๋ก ๋ณด๋ด์ฃผ์๋ค. ์ด๋ฒ์๋ ๋๊ฐ์ด ํด์ฃผ์์ง๋ง...FLAG๊ฐ ์ป์ด์ง์ง ์๋๋ค...(OMG๐ฅน) ๊ฑฐ์ ๋จน๊ธฐ ์คํจํ์ผ๋ ์ฒ์๋ถํฐ ์ฝ๋๋ฅผ ์ดํด๋ณด์ ํ์ผ์ ๋ค์ด ๋ฐ์ app.py๋ฅผ ์ด์ด์ฃผ๋ฉด vuln ํ์ด์ง์ memo ํ์ด์ง ๋ชจ๋ render_template์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ์ ์ ์๋ค.@app.route("/")def index(): return render_template("index.html")@app.route("/vuln")def vuln(): return render_template("vuln.html") render_template ํจ์๋?Flask ์น.. 2025. 3. 6. [wargame] ๋๋ฆผํต xss-1 ๋ฌธ์ ํ์ด ๋๋ฆผํต ์๊ฒ์ level1 xss-1 ๋ฌธ์ ์ ๋ํ ํ์ด์ด๋ค. ๋ฌธ์ ํ์ผ์ ๋ค์ด๋ฐ๊ณ app.py ํ์ผ์ ์ด์ด์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ์ด์ง๋ค์ด ๋ผ์ฐํ ๋๊ณ ์์์ ํ์ธํ ์ ์๋ค. ๊ฐ ํ์ด์ง์ ๊ธฐ๋ฅ์ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค. ๐ค ์ฝ๋ ๋ถ์๊ฐ ํ์ด์ง์ ๊ธฐ๋ฅ์ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค. (๋๋ฆผํต ์น ํดํน ๊ฐ์ข์์ ์ด๋ฏธ ์ ๋ฆฌ๋ ๋ด์ฉ์ด๋ค.)ํ์ด์ง๊ธฐ๋ฅ/์ธ๋ฑ์ค ํ์ด์ง/vuln์ด์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ ์ถ๋ ฅ/memo๋ฉ๋ชจ ์์ฑ ๋ฐ ์์ฑํ ๋ฉ๋ชจ ์ถ๋ ฅ/flag์์ฑํ URL ์ ๋ฌ ์ด์ ์ฝ๋์์ ํต์ฌ ๋ถ๋ถ์ ์ดํด๋ณด์.@app.route("/vuln")def vuln(): param = request.args.get("param", "") return paramrequest.args.get("param", "")๋ HTTP ์์ฒญ์.. 2025. 3. 6. Cross-Site Scripting (XSS) ๊ฐ๋ ์ ๋ฆฌ Cross-Site Scripting (XSS)XSS ๊ณต๊ฒฉ์ ์ด์ฉ์๊ฐ ์ฝ์ ํ ๋ด์ฉ์ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์์ ๋ฐ์ํ๋ค.Stored XSSXSS์ ์ฌ์ฉ๋๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ์ ์ ์ฅ๋๊ณ ์๋ฒ์ ์๋ต์ ๋ด๊ฒจ์ค๋ XSSReflected XSSXSS์ ์ฌ์ฉ๋๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ URL์ ์ฝ์ ๋๊ณ ์๋ฒ์ ์๋ต์ ๋ด๊ฒจ์ค๋ XSSDOM-based XSSXSS์ ์ฌ์ฉ๋๋ ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ URL Fragment์ ์ฝ์ ๋๋ XSSFragment๋ ์๋ฒ ์์ฒญ/์๋ต ์ ํฌํจ๋์ง ์์ต๋๋ค.Universal XSSํด๋ผ์ด์ธํธ์ ๋ธ๋ผ์ฐ์ ํน์ ๋ธ๋ผ์ฐ์ ์ ํ๋ฌ๊ทธ์ธ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ผ๋ก SOP ์ ์ฑ ์ ์ฐํํ๋ XSS ์๋๋ ๋๋ฆผํต ClientSide: XSS ๋ด์ฉ ์ค์์ ์์๋ก ๋์จ ์ธ ๊ฐ์ง ์ฝ๋์ธ๋ฐ ๋ชฐ๋๋ ๋ด์ฉ์ ์๋์ ๊ฐ๋ตํ ๋ฉ๋ชจํด๋๋ค... 2025. 3. 5. ์น ๋ธ๋ผ์ฐ์ ๋ณด์ ์ ์ฑ SOP, CORS, JSONP ๊ฐ๋ ์ ๋ฆฌ ๐ก๏ธ Same Origin Policy (SOP)๋?SOP(๋์ผ ์ถ์ฒ ์ ์ฑ )๋ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ณด์ ๊ฐํ๋ฅผ ์ํด ์ ์ฉํ๋ ์ ์ฑ ์ผ๋ก, ๋ค๋ฅธ ์ถ์ฒ(Origin)์์ ๋ถ๋ฌ์จ ๋ฆฌ์์ค๊ฐ ํ์ฌ ์น ํ์ด์ง์ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์ ํํ๋ ์ญํ ์ ํฉ๋๋ค.๐น Origin(์ถ์ฒ) ์ ์Origin์ ๋ค์ ์ธ ๊ฐ์ง ์์๊ฐ ์์ ํ ์ผ์นํด์ผ ๋์ผํ ์ถ์ฒ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.์์ ์์ํ๋กํ ์ฝ (Protocol / Scheme)http:// vs. https://ํธ์คํธ (Host / Domain)example.com vs. api.example.comํฌํธ (Port)http://example.com:80 vs. http://example.com:8080 โ ๊ฐ์ Origin์ ์์https://www.example.com:443h.. 2025. 3. 5. ์ด์ 1 2 ๋ค์