๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€27

[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.
[wargame] Dreamhack ๋ฌธ์ œํ’€์ด: session-basic ๋“œ๋ฆผํ•ต beginner ๋ฌธ์ œ ์ค‘ session-basic์„ ํ’€์—ˆ๋‹ค. ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋ฉด Welcome! ์ด๋ผ๊ณ  ์จ์ง„ ์ธ๋ฑ์Šค ํŽ˜์ด์ง€๊ฐ€ ๋ณด์ธ๋‹ค. ๋ญ˜ ํ•ด์•ผ ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‹ˆ ๋ฌธ์ œ์— ์žˆ๋Š” ํŽ˜์ด์ง€ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด ๋ฐ›์•„ ์‚ดํŽด๋ณธ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด 56๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ admin ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ… ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋ˆˆ์— ๋ˆ๋‹ค. admin ํŽ˜์ด์ง€์— ์ ‘์†ํ•  ๋•Œ๋Š” ์‹ค์ œ๋กœ ๊ด€๋ฆฌ์ž ๊ณ„์ •์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์œ„ ์ฝ”๋“œ์—์„œ๋Š” TODO๋กœ ์ฃผ์„ ์ฒ˜๋ฆฌ ๋˜์–ด ์žˆ์–ด ๋ˆ„๊ตฌ๋‚˜ admin ํŽ˜์ด์ง€์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ์กด ํŽ˜์ด์ง€ ์ฃผ์†Œ์—์„œ ๋’ค์— /admin์œผ๋กœ ๋ฐ”๋กœ admin ํŽ˜์ด์ง€๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์›๋ž˜๋Š” ๊ด€๋ฆฌ์ž์ผ ๋•Œ๋งŒ ๋ณด์—ฌ์กŒ์–ด์•ผ ํ•  ๊ฐ ์‚ฌ์šฉ์ž์˜ ๋žœ๋ค ์„ธ์…˜ ์•„์ด๋””๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (์•„๋ž˜ ๋ฌธ์ž์—ด์ด ๋žœ๋ค ์„ธ์…˜ ์•„์ด๋””๋ผ๋Š” ๊ฑด ์ฝ”๋“œ์—์„œ ๋žœ๋ค ์„ธ์…˜ ์•„์ด.. 2025. 3. 5.
[wargame] ๋“œ๋ฆผํ•ต beginner cookie ๋ฌธ์ œํ’€์ด ๋ฌธ์ œ ํŒŒ์ผ์ธ app.py๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  ์‚ดํŽด๋ณด๋ฉด users๋ผ๋Š” ๋ฐ์ดํ„ฐ ์…‹ ์•ˆ์— guset์™€ admin ๊ณ„์ •์ด ๋“ค์–ด์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•„์ง FLAG๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฐ์„  ํŽ˜์ด์ง€์— ์ ‘์†ํ•ด ๋กœ๊ทธ์ธ ํ™”๋ฉด์—์„œ username๊ณผ password์— ๋ชจ๋‘ guest, guest๋ฅผ ์ž…๋ ฅํ•ด ๋กœ๊ทธ์ธํ•œ๋‹ค.  ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ Hello guest, you are not admin ๋ฌธ๊ตฌ๊ฐ€ ๋œฌ๋‹ค. ์œ„์— ์ฝ”๋“œ 20๋ฒˆ์งธ ์ค„์„ ์‚ดํŽด๋ณด๋ฉด username์ด admin์ด์–ด์•ผ FLAG๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ F12 ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์ผœ์ค€ ๋’ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ > ์ฟ ํ‚ค์— ๋“ค์–ด๊ฐ„๋‹ค. ์—ฌ๊ธฐ์„œ username r๊ฐ’์„ guest์—์„œ admin์œผ๋กœ ์ˆ˜์ •ํ•œ ๋’ค ์ƒˆ๋กœ๊ณ ์นจํ•ด์ฃผ๋ฉด FLAG๊ฐ€ ์–ป์–ด์ง„๋‹ค. ๋ฌธ์ œ ํ’€์ด์— ๋„์›€์ด ๋˜๋Š” ๋‚ด์šฉ์„.. 2025. 3. 3.
[wargame] Dreamhack beginners devtools-sources ๋ฌธ์ œํ’€์ด ๋ฌธ์ œํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  ์˜คํ”ˆํ•œ ๋’ค F12 ์ผœ๊ธฐSources(์†Œ์Šค) ๋“ค์–ด๊ฐ€์„œ ํด๋” ์•ˆ์— ํŒŒ์ผ๋“ค ์‚ดํŽด๋ณด๊ธฐctrl + F ๋ˆŒ๋Ÿฌ ๊ธ€์ž ๊ฒ€์ƒ‰ ์ฐฝ ๋„์šด ๋‹ค์Œ ํŒŒ์ผ๋“ค ๋Œ๋ฉฐ DH(ํ”Œ๋ž˜๊ทธ ์‹œ์ž‘) ๊ฒ€์ƒ‰ํ•˜๊ธฐhtml์ด๋‚˜ js์— ์žˆ์„ ์ค„ ์•Œ์•˜๋Š”๋ฐ styles ํด๋” ์•ˆ์— main.css 4146๋ฒˆ์งธ ์ค„์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๐Ÿ˜“ cf) window powershell์—์„œ nslookup ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Domain Name์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 2025. 3. 2.
[pthread] Thread ์‹ค์Šต (์šด์˜์ฒด์ œ๐Ÿฆ– ๊ฐ•์˜-Chpater4. Thread & Cocurrency) 1. Thread์˜ ๊ฐœ๋…Thread์˜ ์ข…๋ฅ˜Thread๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.User Thread: ์ปค๋„์˜ ์ง์ ‘์ ์ธ ์ง€์› ์—†์ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.Kernel Thread: ์ปค๋„์ด ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ์“ฐ๋ ˆ๋“œ์ž…๋‹ˆ๋‹ค.User Thread์™€ Kernel Thread ๊ฐ„์˜ ๊ด€๊ณ„ ๋ชจ๋ธMany-to-One Model: ์—ฌ๋Ÿฌ ๊ฐœ์˜ user thread๊ฐ€ ํ•˜๋‚˜์˜ kernel thread์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.One-to-One Model: ๊ฐ๊ฐ์˜ user thread๊ฐ€ ํ•˜๋‚˜์˜ kernel thread์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.Many-to-Many Model: ์—ฌ๋Ÿฌ ๊ฐœ์˜ user thread๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ kernel thread์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. 2. Thread ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌThread ์ƒ์„ฑ๊ณผ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ .. 2025. 2. 28.