๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Security & Hacking ๐Ÿ”

ํ•ดํ‚น, ๋ณด์•ˆ, ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง, ์ทจ์•ฝ์  ๋ถ„์„. ๊ธฐ์ˆ ์  ๊นŠ์ด์™€ ์‹ค์šฉ์„ฑ.

๐Ÿ“„๏ธ API ๋ณด์•ˆ ํ…Œ์ŠคํŒ…: ์‹ค์ „ ๊ฐ€์ด๋“œ

ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์— API๋ฅผ ํฌ๊ฒŒ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์—, API ๋ณด์•ˆ ํ…Œ์ŠคํŒ…์€ ๋ณด์•ˆ ์—ฐ๊ตฌ์ž์™€ ์นจํˆฌ ํ…Œ์Šคํ„ฐ์—๊ฒŒ ํ•ต์‹ฌ ์Šคํ‚ฌ์ด ๋˜์—ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” REST ๋ฐ GraphQL API์—์„œ ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฒ•๊ณผ ๋„๊ตฌ๋ฅผ ๋‹ค๋ฃฌ๋‹ค.

๐Ÿ“„๏ธ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๊ธฐ์ดˆ: ๋ฐ”์ด๋„ˆ๋ฆฌ ์ต์Šคํ”Œ๋กœ์ž‡์˜ ์ฒซ๊ฑธ์Œ

๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ณด์•ˆ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ทจ์•ฝ์  ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง, CTF, ์นจํˆฌ ํ…Œ์ŠคํŠธ์— ๊ด€์‹ฌ ์žˆ๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ํ•„์ˆ˜ ์ง€์‹์ด๋‹ค. ์ˆ˜์‹ญ ๋…„ ์ „๋ถ€ํ„ฐ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์ด์ง€๋งŒ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์—ฌ์ „ํžˆ ๋ฐœ๊ฒฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ตํ˜€์•ผ ํ•  ์Šคํ‚ฌ์ด๋‹ค.

๐Ÿ“„๏ธ CTF ์ •์ฐฐ: OSINT ๊ธฐ๋ฒ• ์™„์ „ ์ •๋ณต

OSINT(์˜คํ”ˆ์†Œ์Šค ์ธํ…”๋ฆฌ์ „์Šค)๋Š” CTF ๋Œ€ํšŒ, ์นจํˆฌ ํ…Œ์ŠคํŠธ, ๋ณด์•ˆ ์—ฐ๊ตฌ์—์„œ ํ•ต์‹ฌ ์Šคํ‚ฌ์ด๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „ํ›„์— ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์‹ค์ „ OSINT ๊ธฐ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค.

๐Ÿ“„๏ธ Format String Vulnerabilities: CTF์—์„œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ทธ ๋ฒ„๊ทธ

ํฌ๋งท ์ŠคํŠธ๋ง ์ทจ์•ฝ์ ์€ ์˜ค๋ž˜๋œ ๋ฒ„๊ทธ์ง€๋งŒ CTF์—์„œ ์—ฌ์ „ํžˆ ๋‹จ๊ณจ ๋ฌธ์ œ๋‹ค. ์›๋ฆฌ๋งŒ ์•Œ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐ๋ถ€ํ„ฐ ์ž„์˜ ์“ฐ๊ธฐ๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ“„๏ธ Frida๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋™์  ๋ถ„์„ (Dynamic Analysis with Frida)

๋™์  ๋ถ„์„์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ ๊ทธ ๋™์ž‘์„ ๊ด€์ฐฐํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. Frida๋Š” ์ด๋Ÿฌํ•œ ๋™์  ๋ถ„์„์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ, CTF, ๋ชจ๋ฐ”์ผ ์•ฑ ๋ถ„์„, ์ทจ์•ฝ์  ์—ฐ๊ตฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ Ghidra๋กœ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•˜๊ธฐ: ์‹ค์ „ ๊ฐ€์ด๋“œ

Ghidra๋Š” NSA๊ฐ€ ๊ณต๊ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋ณด์•ˆ ์—ฐ๊ตฌ์ž, CTF ์ฐธ๊ฐ€์ž, ์•…์„ฑ์ฝ”๋“œ ๋ถ„์„๊ฐ€ ๋ชจ๋‘์—๊ฒŒ ํ•„์ˆ˜ ๋„๊ตฌ๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” Ghidra๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์‹ค์ „ ๊ธฐ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค.

๐Ÿ“„๏ธ JWT ๋ณด์•ˆ ์ทจ์•ฝ์ : ํ”ํ•œ ์‹ค์ˆ˜์™€ ์ต์Šคํ”Œ๋กœ์ž‡ ๊ธฐ๋ฒ•

JWT(JSON Web Token)๋Š” ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์–ด๋””์—๋‚˜ ์žˆ๋‹ค. ํŽธ๋ฆฌํ•˜๊ณ  ๋ฌด์ƒํƒœ์ ์ด๋ฉฐ ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฝ๋‹ค โ€” ๋ฐ”๋กœ ๊ทธ๋ž˜์„œ ์ž˜๋ชป ๊ตฌํ˜„๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. CTF์™€ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” JWT ์ทจ์•ฝ์ ์„ ์•Œ์•„๋ณด์ž.

๐Ÿ“„๏ธ Pwntools๋กœ CTF ๋ฐ”์ด๋„ˆ๋ฆฌ ์ต์Šคํ”Œ๋กœ์ž‡ํ•˜๊ธฐ

๋ฐ”์ด๋„ˆ๋ฆฌ ์ต์Šคํ”Œ๋กœ์ž‡์€ CTF์—์„œ ๊ฐ€์žฅ ๋„์ „์ ์ด๋ฉด์„œ๋„ ๋ณด๋žŒ ์žˆ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋‹ค. ๊ทผ๋ณธ์ ์ธ ์ทจ์•ฝ์ ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์˜ฌ๋ฐ”๋ฅธ ๋„๊ตฌ๋ฅผ ๊ฐ–์ถ”๋Š” ๊ฒƒ์ด ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ๋ง‰ํž˜์˜ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ pwntools โ€” CTF ๋ฐ”์ด๋„ˆ๋ฆฌ ์ต์Šคํ”Œ๋กœ์ž‡์˜ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์ด ๋œ Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค.

๐Ÿ“„๏ธ Radare2๋กœ CTF ๋ฐ”์ด๋„ˆ๋ฆฌ ํ’€๊ธฐ

Radare2(r2)๋Š” CTF ๋ฐ”์ด๋„ˆ๋ฆฌ ์ต์Šคํ”Œ๋กœ์ž‡ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ”Œ๋ ˆ์ด์–ด๋“ค์—๊ฒŒ ํ•„์ˆ˜๊ฐ€ ๋œ ๊ฐ•๋ ฅํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. Ghidra๋‚˜ IDA Pro๊ฐ€ ์„ธ๋ จ๋œ GUI๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด, radare2์˜ ์ปค๋งจ๋“œ๋ผ์ธ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์Šคํฌ๋ฆฝํŒ… ๋Šฅ๋ ฅ์€ ๋น ๋ฅธ ๋ถ„์„์— ๋ฏฟ์„ ์ˆ˜ ์—†์„ ๋งŒํผ ์œ ์—ฐํ•˜๋‹ค.

๐Ÿ“„๏ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํผ์ง•: ์ˆจ๊ฒจ์ง„ ๋ฒ„๊ทธ ์ฐพ๊ธฐ

ํผ์ง•์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ž…๋ ฅ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋˜์ ธ ์ทจ์•ฝ์ , ์ˆจ๊ฒจ์ง„ ์—”๋“œํฌ์ธํŠธ, ์—ฃ์ง€ ์ผ€์ด์Šค๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ์›น ๋ณด์•ˆ ํ…Œ์ŠคํŒ…๊ณผ CTF ๋Œ€ํšŒ๋ฅผ ์œ„ํ•œ ์‹ค์ „ ํผ์ง• ๊ธฐ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค.

๐Ÿ“„๏ธ XSS ํ—ŒํŒ…: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๋ฒ„๊ทธ ๋ฐ”์šดํ‹ฐ๊นŒ์ง€

ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(XSS)์€ ์˜ค๋Š˜๋‚  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ํ”ํ•œ ์ทจ์•ฝ์  ์ค‘ ํ•˜๋‚˜๋กœ ๋‚จ์•„ ์žˆ๋‹ค. ์ˆ˜์‹ญ ๋…„ ์ „๋ถ€ํ„ฐ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์ž„์—๋„ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, XSS ํ—ŒํŒ…์€ ๋ฒ„๊ทธ ๋ฐ”์šดํ‹ฐ ํ—Œํ„ฐ์™€ CTF ํ”Œ๋ ˆ์ด์–ด ๋ชจ๋‘์—๊ฒŒ ์ˆ˜์ต์„ฑ ๋†’์€ ์Šคํ‚ฌ์ด๋‹ค.

๐Ÿ“„๏ธ ํ•จ์ˆ˜ ํ›„ํ‚น: ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด์˜ ๋น„๋ฐ€ ๋ฌด๊ธฐ

ํ•จ์ˆ˜ ํ›„ํ‚น์€ ์ฒ˜์Œ์—๋Š” ๊ฒ๋‚˜๋Š” ๊ธฐ๋ฒ•์ฒ˜๋Ÿผ ๋“ค๋ฆฌ์ง€๋งŒ, ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๊ฐ€ ๋œ๋‹ค. ์•…์„ฑ์ฝ”๋“œ ๋””๋ฒ„๊น…, ์•ˆํ‹ฐ์น˜ํŠธ ์šฐํšŒ, CTF ๋ฌธ์ œ ํ’€์ด ์–ด๋””์„œ๋“  ํ›„ํ‚น์„ ์“ฐ๋ฉด ํ”„๋กœ๊ทธ๋žจ ๋™์ž‘์„ ๋Ÿฐํƒ€์ž„์— ๊ฐ€๋กœ์ฑ„๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“„๏ธ ์•”ํ˜ธํ•™ ๊ณต๊ฒฉ ๊ธฐ๋ฒ• ์ž…๋ฌธ: Padding Oracle๋ถ€ํ„ฐ Bit-Flipping๊นŒ์ง€

CTF๋ฅผ ํ’€๋‹ค ๋ณด๋ฉด ์•”ํ˜ธํ™”๋œ ์ฟ ํ‚ค๋‚˜ ํ† ํฐ์„ ๋งˆ์ฃผ์น  ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋ƒฅ "์•”ํ˜ธํ™”๋์œผ๋‹ˆ ์•ˆ์ „ํ•˜๊ฒ ์ง€"๋ผ๊ณ  ๋„˜๊ธฐ๋ฉด ํƒˆ๋ฝ. ์‹ค์ œ๋กœ๋Š” ๊ตฌํ˜„ ์‹ค์ˆ˜ ํ•˜๋‚˜๋กœ ์ „์ฒด๊ฐ€ ๋ฌด๋„ˆ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ—ˆ๋‹คํ•˜๋‹ค.

๐Ÿ“„๏ธ SSTI: ์„œ๋ฒ„์‚ฌ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์ธ์ ์…˜ ์™„์ „ ๋ถ„์„

SSTI(Server-Side Template Injection)๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฝ”๋“œ๋กœ ํ•ด์„ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ด๋‹ค. XSS์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋ก  ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜์–ด RCE๊นŒ์ง€ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“„๏ธ CORS ์„ค์ • ์˜ค๋ฅ˜์™€ ์‹ค์ „ ์ต์Šคํ”Œ๋กœ์ž‡

CORS(Cross-Origin Resource Sharing)๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค๋ฅธ ์˜ค๋ฆฌ์ง„์˜ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. ์ž˜๋ชป ์„ค์ •ํ•˜๋ฉด ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต๊ฒฉ์ž๊ฐ€ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“„๏ธ XXE Injection: XML์ด ๊ณต๊ฒฉ ๋ฒกํ„ฐ๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„

XML External Entity (XXE) Injection์€ XML ํŒŒ์„œ์˜ ์™ธ๋ถ€ ์—”ํ‹ฐํ‹ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์•…์šฉํ•˜๋Š” ๊ณต๊ฒฉ์ด๋‹ค. OWASP Top 10์— ๊พธ์ค€ํžˆ ์ด๋ฆ„์„ ์˜ฌ๋ฆฌ๋Š” ํด๋ž˜์‹์ด์ง€๋งŒ, ์•„์ง๋„ ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค์—์„œ ๋ฐœ๊ฒฌ๋œ๋‹ค.

๐Ÿ“„๏ธ WebSocket ๋ณด์•ˆ: ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์˜ ์ˆจ๊ฒจ์ง„ ์ทจ์•ฝ์ 

WebSocket์€ HTTP์™€ ๋‹ฌ๋ฆฌ ์ง€์†์ ์ธ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ์ œ๊ณตํ•œ๋‹ค. ์ฑ„ํŒ…, ๊ฒŒ์ž„, ์‹ค์‹œ๊ฐ„ ๋Œ€์‹œ๋ณด๋“œ ๋“ฑ ํ˜„๋Œ€ ์›น์•ฑ์—์„œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์“ฐ์ด์ง€๋งŒ, ๋ณด์•ˆ ์„ค๊ณ„๊ฐ€ ํ—ˆ์ˆ ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

๐Ÿ“„๏ธ Shellcode ์ž‘์„ฑ ๊ธฐ์ดˆ โ€” ์–ด์…ˆ๋ธ”๋ฆฌ๋ถ€ํ„ฐ ๋ฐ”์ดํŠธ๋กœ

Shellcode๋Š” ์ทจ์•ฝ์ ์„ ์ต์Šคํ”Œ๋กœ์ž‡ํ•  ๋•Œ ์‹คํ–‰์‹œํ‚ค๊ณ ์ž ํ•˜๋Š” raw ๋จธ์‹ ์ฝ”๋“œ ๋ฐ”์ดํŠธ ์‹œํ€€์Šค๋‹ค. Buffer overflow๋‚˜ ROP chain์˜ ํŽ˜์ด๋กœ๋“œ๋กœ ์‚ฝ์ž…๋˜๋ฉฐ, CTF์˜ ๋‹จ๊ณจ ์†Œ์žฌ์ด๊ธฐ๋„ ํ•˜๋‹ค.

๐Ÿ“„๏ธ Use-After-Free: ํ•ด๋ฐฉ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์žก์•„๋ผ

UAF(Use-After-Free) ๋Š” heap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ free() ํ•œ ์ดํ›„์—๋„ ํ•ด๋‹น ํฌ์ธํ„ฐ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ด๋‹ค. ํ˜„๋Œ€ ๋ธŒ๋ผ์šฐ์ €, ์ปค๋„, ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋Š์ž„์—†์ด ๋ฐœ๊ฒฌ๋˜๋ฉฐ CTF์—์„œ๋„ ๋‹จ๊ณจ ์ฃผ์ œ๋‹ค.

๐Ÿ“„๏ธ Linux ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡ ์ž…๋ฌธ: LPE์˜ ์„ธ๊ณ„

์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡์€ ํ•ดํ‚น์˜ ์ •์ ์ด๋ผ ๋ถˆ๋ฆฐ๋‹ค. ์ผ๋ฐ˜ ์œ ์ € ๊ถŒํ•œ์—์„œ root๋ฅผ ํƒˆ์ทจํ•˜๋Š” LPE(Local Privilege Escalation) โ€” CTF์˜ pwn ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ๋„ ์ข…์ข… ๋“ฑ์žฅํ•˜๊ณ , ์‹ค์ œ APT ๊ณต๊ฒฉ์—์„œ๋„ ํ•ต์‹ฌ ๋‹จ๊ณ„๋‹ค.

๐Ÿ“„๏ธ ์›น ์บ์‹œ ํฌ์ด์ฆˆ๋‹: CDN์„ ๊ณต๊ฒฉ ํ‘œ๋ฉด์œผ๋กœ ๋งŒ๋“ค๊ธฐ

์›น ์บ์‹œ๋Š” ์„ฑ๋Šฅ์„ ์˜ฌ๋ฆฌ์ง€๋งŒ, ์ž˜๋ชป ์„ค์ •๋˜๋ฉด ์บ์‹œ ํฌ์ด์ฆˆ๋‹์˜ ํ‘œ์ ์ด ๋œ๋‹ค. ํ•ต์‹ฌ์€ โ€œ๊ฐ™์€ URL๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์‘๋‹ต์„ ๋งŒ๋“ค๊ณ , ๊ทธ ์‘๋‹ต์„ ์บ์‹œ์— ๋ฐ•์•„๋ฒ„๋ฆฌ๋Š” ๊ฒƒโ€์ด๋‹ค.

๐Ÿ“„๏ธ Padding Oracle: ์•”ํ˜ธ๋ฌธ์ด ์•Œ๋ ค์ฃผ๋Š” ๋น„๋ฐ€

CBC ๋ชจ๋“œ์—์„œ ์„œ๋ฒ„๊ฐ€ ํŒจ๋”ฉ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์‘๋‹ตํ•˜๋ฉด, ์•”ํ˜ธ๋ฌธ๋งŒ์œผ๋กœ ํ‰๋ฌธ์„ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ padding oracle์ด๋‹ค. ์‹ค์ „๊ณผ CTF ๋ชจ๋‘ ์ž์ฃผ ๋‚˜์˜จ๋‹ค.

๐Ÿ“„๏ธ Ghidra + Frida๋กœ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฆฌ๋ฒ„์‹ฑ ๋ฃจํ‹ด ๋งŒ๋“ค๊ธฐ

์ •์  ๋ถ„์„์€ ๊ตฌ์กฐ๋ฅผ, ๋™์  ๋ถ„์„์€ ํ˜„์‹ค ๋™์ž‘์„ ๋ณด์—ฌ์ค€๋‹ค. CTF๋‚˜ ์‹ค์ „ ๋ถ„์„์—์„œ ๋‘ ํˆด์„ ๋ฌถ์–ด ์“ฐ๋ฉด ์†๋„๊ฐ€ ํ™• ๋Š˜์–ด๋‚œ๋‹ค.

๐Ÿ“„๏ธ Binary Diffing: ํŒจ์น˜์—์„œ ์ทจ์•ฝ์  ์ฐพ๋Š” ๋น ๋ฅธ ๋ฃจํ‹ด

ํŒจ์น˜๊ฐ€ ์˜ฌ๋ผ์™”์„ ๋•Œ ๊ฐ€์žฅ ๋น ๋ฅธ ์ทจ์•ฝ์  ๋ถ„์„ ๋ฃจํ‹ด์€ binary diffing์ด๋‹ค. โ€œ๋ฌด์Šจ ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€โ€๋งŒ ์•Œ์•„๋„ ๊ณต๊ฒฉ ํฌ์ธํŠธ๊ฐ€ ๋ณด์ธ๋‹ค.

๐Ÿ“„๏ธ Hash Length Extension: MD5/SHA1 ์„œ๋ช… ์šฐํšŒ ํ•ต์‹ฌ

์›น์—์„œ hash(secret || msg) ํ˜•ํƒœ์˜ ์„œ๋ช…์„ ์“ฐ๋ฉด length extension์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์›๋ณธ ํ•ด์‹œ์™€ msg ๊ธธ์ด๋ฅผ ์ถ”์ •ํ•ด ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ™์ธ ์ƒˆ ํ•ด์‹œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ“„๏ธ ret2dlresolve: ์‹ฌ๋ณผ ํ•ด์„๊ธฐ๋ฅผ ์—ญ์ด์šฉํ•˜๋Š” ROP ํŠธ๋ฆญ

ret2dlresolve๋Š” ๋™์  ๋ง์ปค(ld.so)์˜ ์‹ฌ๋ณผ ํ•ด์„ ๊ณผ์ •์„ ์•…์šฉํ•ด, ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์—†๋Š” ํ•จ์ˆ˜๋„ ROP๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ํŠนํžˆ PLT/GOT๊ฐ€ ์ œํ•œ๋œ CTF ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ WAF ์šฐํšŒ ํ”Œ๋ ˆ์ด๋ถ: ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ํ”๋“œ๋Š” ์ž‘์€ ๋ณ€ํ˜•

WAF๋Š” ๋ณดํ†ต ์ •๊ทœ์‹/์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์ฒญ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐํšŒ๋Š” โ€œ๊ธฐ๋Šฅ์€ ์œ ์ง€ํ•˜๋˜ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ๋Š”โ€ ์ „๋žต์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” CTF์™€ ์‹ค์ „ ํ…Œ์ŠคํŠธ์—์„œ ์ž์ฃผ ์“ฐ๋Š” ๋ณ€ํ˜• ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ ํŒจ์น˜ ๋””ํ•‘์œผ๋กœ N-day ์ทจ์•ฝ์  ์ฐพ๊ธฐ

ํŒจ์น˜๊ฐ€ ๊ณต๊ฐœ๋œ ์งํ›„, diff๋Š” ์ตœ๊ณ ์˜ ํžŒํŠธ์ž…๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ์ „/ํ›„ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋˜๋Š” ์†Œ์Šค์˜ ๋ณ€๊ฒฝ ์ง€์ ์„ ๋น„๊ตํ•ด ์ทจ์•ฝ์  ํ›„๋ณด๋ฅผ ์ขํžˆ๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. CTF์—์„œ๋„ โ€œํŒจ์น˜๋œ ํ•จ์ˆ˜๊ฐ€ ๊ณง ํ”Œ๋ž˜๊ทธ๋กœ ๊ฐ€๋Š” ๊ธธโ€์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ ์‹ฌ๋ณผ ์—†๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ํ•จ์ˆ˜ ์œค๊ณฝ ์žก๊ธฐ

์ŠคํŠธ๋ฆฝ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ํ•จ์ˆ˜๋ช…/๋””๋ฒ„๊ทธ ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ ธ ํ๋ฆ„ ์ถ”๋ก ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. Ghidra/IDA์—์„œ ์ž๋™ ๋ถ„์„์ด ํ”๋“ค๋ฆด ๋•Œ, ์•„๋ž˜ ๋ฃจํ‹ด์œผ๋กœ ์œค๊ณฝ์„ ์žก์œผ๋ฉด ์†๋„๊ฐ€ ๋ถ™์Šต๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ Z3๋กœ CTF ์•”ํ˜ธ ํผ์ฆ ํ‘ธ๋Š” ๋ฃจํ‹ด

์•”ํ˜ธํ•™ CTF์—์„œ โ€œ์‹์€ ์žˆ๋Š”๋ฐ ๋‹ต์ด ์•ˆ ๋‚˜์˜ค๋Š”โ€ ์ˆœ๊ฐ„์ด ์ž์ฃผ ์˜ต๋‹ˆ๋‹ค. ์ด๋•Œ SMT Solver์ธ Z3๊ฐ€ ํ•ด๋‹ต์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ๋ฌธ์ œ๋ฅผ ์ œ์•ฝ ์กฐ๊ฑด์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ.

๐Ÿ“„๏ธ angr๋กœ ์‹ฌ๋ณผ๋ฆญ ์‹คํ–‰ ๋ง›๋ณด๊ธฐ

๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์—์„œ ์‹ฌ๋ณผ๋ฆญ ์‹คํ–‰์€ โ€œ์ž…๋ ฅ ์กฐ๊ฑด์„ ๋ณ€์ˆ˜๋กœ ๋‘๊ณ  ๊ฒฝ๋กœ๋ฅผ ์ถ”์ โ€ํ•ด ์ •๋‹ต์„ ์ฐพ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. CTF crackme๋‚˜ ๋‚œ๋…ํ™”๋œ ๋ถ„๊ธฐ์—์„œ ํŠนํžˆ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ WASM ๋ฆฌ๋ฒ„์‹ฑ์œผ๋กœ ์›น ๋ณด์•ˆ ํฌ์ธํŠธ ์ฐพ๊ธฐ

์ตœ๊ทผ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋ฏผ๊ฐ ๋กœ์ง์„ WebAssembly๋กœ ์ˆจ๊ธฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. WASM์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ๊ฒฐ๊ตญ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ผ์„œ ๋ฆฌ๋ฒ„์‹ฑ ํฌ์ธํŠธ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ GraphQL ์ธํŠธ๋กœ์ŠคํŽ™์…˜ ์•…์šฉ ํฌ์ธํŠธ

GraphQL์€ ์Šคํ‚ค๋งˆ๊ฐ€ API ์„ค๋ช…์„œ ์ž์ฒด์ž…๋‹ˆ๋‹ค. ์ธํŠธ๋กœ์ŠคํŽ™์…˜์ด ์—ด๋ ค ์žˆ์œผ๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์ฟผ๋ฆฌ ํ‘œ๋ฉด์„ ๊ทธ๋Œ€๋กœ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค. CTF์—์„œ๋„ ํ”ํ•œ ์ดˆ๋ฐ˜ ๋‹จ์„œ์ฃ .

๐Ÿ“„๏ธ HTTP Request Smuggling ๊ฐ ์žก๊ธฐ

์š”์ฒญ ์Šค๋จธ๊ธ€๋ง์€ ํ”„๋ก์‹œ/๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ์š”์ฒญ ๊ฒฝ๊ณ„๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ”ํ•œ ์กฐํ•ฉ์€ Content-Length์™€ Transfer-Encoding: chunked ํ•ด์„ ๋ถˆ์ผ์น˜์ž…๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ ELF PLT/GOT ํ•˜์ด์žฌํ‚น ํ•ต์‹ฌ ํ๋ฆ„

๋ฆฌ๋ฒ„์‹ฑ์ด๋‚˜ CTF์—์„œ GOT overwrite๋Š” ์•„์ง๋„ ๊ฐ•๋ ฅํ•œ ์šฐํšŒ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ๋™์  ๋งํ‚น ํ๋ฆ„๋งŒ ๋ช…ํ™•ํžˆ ์žก์œผ๋ฉด, ํ˜ธ์ถœ ๊ฒฝ๋กœ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๊ฐˆ์•„ํƒˆ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ“„๏ธ AES-CBC ๋น„ํŠธํ”Œ๋ฆฝ ๊ณต๊ฒฉ ๋น ๋ฅธ ๊ฐ

CBC ๋ชจ๋“œ๋Š” ์ด์ „ ๋ธ”๋ก์˜ ciphertext๊ฐ€ ๋‹ค์Œ ๋ธ”๋ก์˜ plaintext์— XOR๋กœ ์„ž์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ณต๊ฒฉ์ž๋Š” C_์˜ ํŠน์ • ๋น„ํŠธ๋ฅผ ๋’ค์ง‘์–ด P_i๋ฅผ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”. ์„œ๋ฒ„๊ฐ€ ๋ณตํ˜ธํ™” ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ์‹ ๋ขฐํ•˜๊ณ  role=user ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•˜๋ฉด, role=admin์œผ๋กœ ์Šน๊ฒฉ์‹œํ‚ค๋Š” ์‹์˜ ๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ Host ํ—ค๋” ๊ณต๊ฒฉ ๋น ๋ฅธ ์ฒดํฌ

์›น์•ฑ์€ ์ข…์ข… Host ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ URL ์ƒ์„ฑ, ์ ˆ๋Œ€๊ฒฝ๋กœ ๋งํฌ, ๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ • ๋งํฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋•Œ ํ”„๋ก์‹œ/์บ์‹œ/์•ฑ์˜ ์‹ ๋ขฐ ๊ฒฝ๊ณ„๊ฐ€ ์–ด๊ธ‹๋‚˜๋ฉด Open Redirect, ๋งํฌ ํ•˜์ด์žฌํ‚น, ์บ์‹œ ๋…์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ“„๏ธ DNS Rebinding ๊ธฐ์ดˆ ๋ฉ”๋ชจ

DNS Rebinding์€ ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…(SOP)์„ ์šฐํšŒํ•ด ๋ธŒ๋ผ์šฐ์ €๋กœ ๋‚ด๋ถ€๋ง ์ž์›์— ์ ‘๊ทผํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค. CTF ์›น ๋ฌธ์ œ์—์„œ โ€œ๋‚ด๋ถ€ ์„œ๋น„์Šค์—์„œ flag ์ฝ๊ธฐโ€๋กœ ์ž์ฃผ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ ECB ์ปท์•คํŽ˜์ด์ŠคํŠธ ๊ณต๊ฒฉ ๋ฉ”๋ชจ

AES-ECB๋Š” ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋…๋ฆฝ ์•”ํ˜ธํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋™์ผ ํ‰๋ฌธ ๋ธ”๋ก์€ ๋™์ผ ์•”ํ˜ธ๋ฌธ ๋ธ”๋ก์œผ๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ์ด ํŠน์„ฑ์„ ์ด์šฉํ•ด CTF์—์„œ ๊ถŒํ•œ ์ƒ์Šน ํ† ํฐ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ ์œ ๋‹ˆ์ฝ”๋“œ ์ •๊ทœํ™”๋กœ Path Traversal ์šฐํšŒ

์›น ์„œ๋ฒ„๋‚˜ API๊ฐ€ ../๋งŒ ํ•„ํ„ฐ๋งํ•  ๋•Œ, ์œ ๋‹ˆ์ฝ”๋“œ ์ •๊ทœํ™”(NFC/NFKC) ์ฐจ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ์šฐํšŒ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ: ..%ef%bc%8f(FULLWIDTH SOLIDUS)๋‚˜ ..%e2%88%95(DIVISION SLASH) ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์ •๊ทœํ™” ํ›„ /๋กœ ๋ณ€ํ™˜๋˜๋ฉด ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผํ•˜๊ณ  ์‹ค์ œ ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ๊นจ์ง‘๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ Zip Slip ์ทจ์•ฝ์  ๋น ๋ฅด๊ฒŒ ์ •๋ฆฌ

Zip Slip์€ ์••์ถ• ํ•ด์ œ ๊ณผ์ •์—์„œ ../ ๊ฒฝ๋กœ๊ฐ€ ์ œ๋Œ€๋กœ ์ œ๊ฑฐ๋˜์ง€ ์•Š์•„ ์ž„์˜ ํŒŒ์ผ ์“ฐ๊ธฐ๊ฐ€ ๋˜๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์›น ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์—์„œ ZIP์„ ํ’€์–ด์ฃผ๋Š” ๊ฒฝ์šฐ, ../../../../var/www/html/shell.jsp ๊ฐ™์€ ์—”ํŠธ๋ฆฌ๋ฅผ ์‹ฌ์–ด ์„œ๋ฒ„ ํŒŒ์ผ์„ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ“„๏ธ CTF์—์„œ checksec๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐฉ์–ด๊ธฐ๋ฒ• ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ

๋ฆฌ๋ฒ„์Šค/ํฌ๋„ˆ๋ธ” ๋ฌธ์ œ ํ’€ ๋•Œ ์ฒซ 30์ดˆ์— ํ•  ์ผ์€ checksec๋กœ ๋ฐฉ์–ด ์˜ต์…˜์„ ํ™•์ธํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค. NX, PIE, Canary๊ฐ€ ์ผœ์ ธ ์žˆ๋А๋ƒ์— ๋”ฐ๋ผ ์ต์Šคํ”Œ๋กœ์ž‡ ์ „๋žต์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์ ธ์š”.

๐Ÿ“„๏ธ YARA ๋ฃฐ๋กœ ๋ฆฌ๋ฒ„์‹ฑ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์žก๊ธฐ

YARA๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ/๋ฉ”๋ชจ๋ฆฌ ๋คํ”„์—์„œ ํŒจํ„ด์„ ์„ ์–ธ์ ์œผ๋กœ ๋งค์นญํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋ฒ„์Šค ๋‹จ๊ณ„์—์„œ โ€œ์ด ํ•จ์ˆ˜๊ฐ€ ์–ด๋А ๋ฒ„์ „์ธ์ง€โ€, โ€œ์ด ์ƒ˜ํ”Œ์ด ์–ด๋–ค ๊ณ„์—ด์ธ์ง€โ€ ๋น ๋ฅด๊ฒŒ ํƒœ๊น…ํ•  ๋•Œ ์œ ์šฉํ•ด์š”.

๐Ÿ“„๏ธ ์†Œ์Šค๋งต์œผ๋กœ ์›น ๋ฆฌ๋ฒ„์‹ฑ ๋น ๋ฅด๊ฒŒ ๋๋‚ด๊ธฐ

ํ”„๋กœ๋•์…˜ ๋ฒˆ๋“ค JS๋Š” ๋‚œ๋…ํ™”๋ผ๋„ .map์ด ๋‚จ์•„์žˆ์œผ๋ฉด ์›๋ณธ ๊ตฌ์กฐ๊ฐ€ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ ๊ด€์ ์—์„œ๋Š” ์ˆจ์€ API, ํ”ผ์ฒ˜ ํ”Œ๋ž˜๊ทธ, ๋””๋ฒ„๊ทธ ๋ผ์šฐํŠธ*๋ฅผ ์ฐพ๋Š” ์ง€๋ฆ„๊ธธ์ด์ฃ .

๐Ÿ“„๏ธ RSA ๊ณตํ†ต ๋ชจ๋“ˆ๋Ÿฌ์Šค ์ทจ์•ฝ์ , CTF์—์„œ ๋ฐ”๋กœ ์จ๋จน๊ธฐ

RSA์—์„œ ๊ฐ™์€ N(modulus)์„ ์žฌ์‚ฌ์šฉํ•˜๋ฉด์„œ ์„œ๋กœ ๋‹ค๋ฅธ e๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด, ์กฐ๊ฑด๋งŒ ๋งž์œผ๋ฉด ํ‰๋ฌธ์„ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CTF์—์„œ ์ข…์ข… โ€œ๋‘ ๊ฐœ์˜ ๊ณต๊ฐœํ‚ค๊ฐ€ N์ด ๊ฐ™๋„ค?โ€ ํ˜•ํƒœ๋กœ ๋“ฑ์žฅํ•ด์š”.

๐Ÿ“„๏ธ strace/ltrace๋กœ ๋ฆฌ๋ฒ„์‹ฑ 10๋ถ„ ์ปท ๋‹จ์„œ ์ฐพ๊ธฐ

์ •์  ๋ถ„์„ ์ „์— strace์™€ ltrace๋ฅผ ๋Œ๋ฆฌ๋ฉด ์ž…์ถœ๋ ฅ ํ๋ฆ„๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์ด ํ•œ๋ˆˆ์— ๋ณด์ž…๋‹ˆ๋‹ค. CTF crackme์—์„œ ํ‚ค ๊ฒ€์ฆ ๋ฃจํ‹ด์„ ๋น ๋ฅด๊ฒŒ ์ขํžˆ๋Š” ๋ฐ ์ตœ๊ณ ์˜ˆ์š”.

๐Ÿ“„๏ธ Shadow DOM XSS ํ—ŒํŒ… ํฌ์ธํŠธ

์ตœ๊ทผ ํ”„๋ŸฐํŠธ์—”๋“œ๋Š” Web Components๋ฅผ ์จ์„œ Shadow DOM ์•ˆ์— UI๋ฅผ ์ˆจ๊น๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ sanitizer๊ฐ€ light DOM๋งŒ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด์š”. ์ด๋•Œ attachShadow({mode:"open"})๋กœ ๋…ธ์ถœ๋œ root๋ฅผ ํ†ตํ•ด unsafe HTML์„ ์ฃผ์ž…ํ•˜๋ฉด XSS๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ ret2csu ๋ฏธ๋‹ˆ ์น˜ํŠธ์‹œํŠธ

PIE/NX ํ™˜๊ฒฝ์—์„œ ROP ๊ฐ€์ ฏ์ด ๋ถ€์กฑํ•  ๋•Œ libccsuinit์˜ ๋‘ ๊ฐ€์ ฏ์„ ์จ์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ rdi/rsi/rdx ์„ธํŒ…๊ณผ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ ํ˜ธ์ถœ์„ ํ•œ ๋ฒˆ์— ๋๋‚ด๋Š” ๊ฒƒ.

๐Ÿ“„๏ธ SROP ๋น ๋ฅธ ๊ฐ ์žก๊ธฐ: sigreturn๋กœ ๋ ˆ์ง€์Šคํ„ฐ ํ’€์„ธํŒ…

SROP(Sigreturn Oriented Programming)๋Š” sysrtsigreturn์„ ํ˜ธ์ถœํ•ด ์ปค๋„์ด ์Šคํƒ์— ์žˆ๋Š” sigcontext๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์›ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ROP ์ฒด์ธ ๊ธธ์ด๋ฅผ ์ค„์ด๊ฑฐ๋‚˜, ๊ฐ€์ ฏ์ด ๋ถ€์กฑํ•  ๋•Œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ์–ด์š”. ํ•ต์‹ฌ์€ ๊ฐ€์งœ ์‹œ๊ทธ๋„ ํ”„๋ ˆ์ž„์„ ์Šคํƒ์— ์˜ฌ๋ฆฌ๊ณ  syscall; ret๋กœ rt_sigreturn์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ฒƒ.

๐Ÿ“„๏ธ ๋ธŒ๋ผ์šฐ์ € ์ต์Šคํ…์…˜ ๋ฆฌ๋ฒ„์‹ฑ ๋น ๋ฅธ ๋ฃจํ‹ด

๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ ํฌ๋กฌ/์—ฃ์ง€ ๊ธฐ์ค€์œผ๋กœ CRX โ†’ ZIP๋งŒ ํ’€๋ฉด ๊ฑฐ์˜ ๋์ž…๋‹ˆ๋‹ค. ์†Œ์Šค๊ฐ€ ๋‚œ๋…ํ™”๋˜์–ด๋„ ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ์žก์œผ๋ฉด ๋ถ„์„ ์†๋„๊ฐ€ ํ™• ์˜ฌ๋ผ๊ฐ€์š”.

๐Ÿ“„๏ธ LD_PRELOAD ๋Ÿฐํƒ€์ž„ ํ›„ํ‚น ํ•œ ๋ฒˆ์— ์ •๋ฆฌ

๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ์ดˆ๋ฐ˜์— ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ณ ์น˜๊ธฐ ์–ด๋ ต๋‹ค๋ฉด LD_PRELOAD๊ฐ€ ์ œ์ผ ๋น ๋ฅธ ์šฐํšŒ ๋ฃจํŠธ์ž…๋‹ˆ๋‹ค. ๋™์  ๋ง์ปค๊ฐ€ ์‹ฌ๋ณผ์„ ํ•ด์„ํ•  ๋•Œ ์šฐ์„  ๋กœ๋“œ๋˜๋Š” ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ•จ์ˆ˜๋ฅผ ๋ฎ์–ด์”Œ์šฐ๋Š” ๋ฐฉ์‹์ด์ฃ .

๐Ÿ“„๏ธ OAST๋กœ SSRF๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•

SSRF ์˜์‹ฌ ์ง€์ ์ด ๋ณด์ด๋ฉด ๋ฐ”๋กœ DNS/HTTP ์•„์›ƒ๋ฐ”์šด๋“œ๊ฐ€ ๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒŒ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. OAST(Outโ€‘ofโ€‘Band Application Security Testing)๋Š” ์š”์ฒญ์„ ์™ธ๋ถ€๋กœ ํŠ€๊ฒŒ ๋งŒ๋“  ๋’ค, ๊ทธ ํ”์ ์„ ๊ด€์ฐฐํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ WAF๋‚˜ ํ•„ํ„ฐ์— ๋ง‰ํ˜€๋„ ์ฆ๊ฑฐ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.

๐Ÿ“„๏ธ SSRF ์™„๋ฒฝ ๊ฐ€์ด๋“œ - ์„œ๋ฒ„๋ฅผ ์—ญ์ด์šฉํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•

TL;DR: SSRF(Server-Side Request Forgery)๋Š” ์„œ๋ฒ„๊ฐ€ ๊ณต๊ฒฉ์ž๊ฐ€ ์ง€์ •ํ•œ ์ž„์˜์˜ URL๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋„๋ก ๋งŒ๋“œ๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ, ํด๋ผ์šฐ๋“œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํƒˆ์ทจ, ํฌํŠธ ์Šค์บ” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.