๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€50

01. ๋ฒ„ํผ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ทจ์•ฝ์  ์†Œ๊ฐœ๋ฒ„ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์— ๋ฒ„ํผ ๋ธ”๋ก ํฌ๊ธฐ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์Œ์œผ๋กœ์จ ๊ฒฐํ•จ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ทจ์•ฝ์ (๋ฒ„ํผ์˜ ์šฉ๋Ÿ‰์ด ์ดˆ๊ณผ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ๋ฎ์–ด์จ์ ธ ํ• ๋‹น๋œ ๋ฐ์ดํ„ฐ ๋ณด๋‹ค ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์“ฐ์ด๊ฑฐ๋‚˜ ์ด๋กœ์ธํ•ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ) ํŒ๋‹จ ๊ธฐ์ค€ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— ๋Œ€ํ•œ ๊ฒ€์ฆ ๋ฏธํก์œผ๋กœ ์—๋Ÿฌ ํŽ˜์ด์ง€๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ(C์–ธ์–ด, ๋ฒ„ํผ์ดˆ๊ณผ, ๋ฉ”๋ชจ๋ฆฌ ์ด์ƒ ์‚ฌ์šฉ, ...) ์ ๊ฒ€ ์‚ฌ๋ก€- ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ๊ณ„์ € ์ •๋ณด ์ž…๋ ฅ ์‹œ ๋Œ€๋Ÿ‰์˜ ๋ฌธ์ž์—ด ์ž…๋ ฅํ•˜์—ฌ ์—๋ŸฌํŽ˜์ด์ง€๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ ๊ฒ€- ๋กœ๊ทธ์ธ ํ›„ ์ •๋ณด ๋ณ€๊ฒฝ ํŽ˜์ด์ง€์—์„œ ๊ฐ€์ž… ์ •๋ณด ์ˆ˜์ • ์‹œ ๋Œ€๋Ÿ‰์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์—ฌ ์—๋Ÿฌ ํŽ˜์ด์ง€๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ ๊ฒ€- ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ์‹œ, URL ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— ์ž…๋ ฅ ์‹œ(๋Œ€๋Ÿ‰์˜ ๋ฌธ์ž์—ด) ๋ณด์•ˆ ์„ค์ •- ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ „๋‹ฌ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ํ•„์š”ํ•œ ํฌ.. 2024. 5. 12.
05. SQL ์ธ์ ์…˜(MySQL, Oracle, MSSQL, ...) ์ทจ์•ฝ์  ์†Œ๊ฐœDB ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉ์ด ์ด๋ฃจ์–ด์ง€๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์‚ฝ์ž…ํ•˜์—ฌ ํ•ด๋‹น DB์˜ ์ •๋ณด๋ฅผ ์–ป๊ฑฐ๋‚˜ ์กฐ์ž‘ํ• ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์  ํŒ๋‹จ ๊ธฐ์ค€SQL ์ฟผ๋ฆฌ ์ž…๋ ฅ ๊ฒ€์ฆ์ด ๋ฏธํกํ•˜์—ฌ ์„œ๋ฒ„์™€ ์งˆ์˜/์‘๋‹ต์„ ๋‚˜๋ˆ„์–ด ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ข…๋ฅ˜(Error-Based, Union-Based, Blind-Based, Stored Procedure Based, ...)> Error-Based SQL Injection: ๊ฐ•์ œ๋กœ ์—๋Ÿฌ๋ฅผ ์œ ๋ฐœ์‹œ์ผœ ์—๋Ÿฌ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  DB์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ > Union-Based SQL Injection: ์›๋ž˜ ๊ธฐ์กด์˜ ์š”์ฒญ SQL ๋ฌธ์— ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ DB์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ(์ปฌ๋Ÿผ๋ช…์€ ๊ธฐ์กด ์š”์ฒญ SELECT ๋ฌธ๊ณผ ๋‹ฌ๋ผ๋„ ๋˜์ง€๋งŒ ์ปฌ๋Ÿผ ๊ฐฏ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ).. 2024. 4. 11.
ํฌ๋กœ์Šค์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(XSS; Cross-Site Scripting) ์ทจ์•ฝ์  ์†Œ๊ฐœ์›น ์‚ฌ์ดํŠธ ๋‚ด์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์Šคํฌ๋ฆฝํŠธ ๋ฌธ์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ทจ์•ฝ์ (๊ฒŒ์‹œํŒ ์‚ฌ์ดํŠธ, 1:1 ๋ฌธ์˜, URL, ...) ์ ๊ฒ€ ๋ชฉ์ (์•…์˜์ ์ธ)์Šคํฌ๋ฆฝํŠธ์˜ ์‹คํ–‰์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•จ ์œ„ํ˜‘ ์‹œ๋‚˜๋ฆฌ์˜ค- ๊ฒŒ์‹œ๊ธ€์ด๋‚˜ ์ด๋ฉ”์ผ์„ ์ฝ๋Š” ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค(์„ธ์…˜)๋ฅผ ํƒˆ์ทจํ•˜์—ฌ ์˜ค์šฉํ•˜๊ฑฐ๋‚˜ ์•…์˜์  ์‚ฌ์ดํŠธ(๊ฐœ์ธ์ •๋ณด ํƒˆ์ทจ ๊ฐ€๋Šฅ ์‚ฌ์ดํŠธ, ...)๋กœRedirect ํ•  ์ˆ˜ ์žˆ์Œ XSS ์ข…๋ฅ˜ (Stroed XSS, Reflected XSS, Dom-Based XSS) โ€ป์œ„ํ—˜๋„ ๊ธฐ์ค€์€ ๊ฐœ์ธ์ ์ด๋ฉฐ ์—ฌ๊ธฐ์„  ํฌ์‚ฌ ์ทจ์•ฝ์  ์ค‘์—์„œ ๋ถ„๋ฅ˜ํ•จ (Critical, Major, Minor)> Stored XSS ( Critical ) - ํ•ด๋‹น ํŽ˜์ด์ง€ ์ ‘๊ทผ ์‹œ, ์Šคํฌ๋ฆฝํŠธ ๋ฐœ์ƒ: DB์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ๋งŒ ํ•ด๋„.. 2024. 4. 7.
[Dreamhack] Level1: simple-ssti ๐Ÿ›Ž๏ธ Access ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ์‹œ 404 ์—๋Ÿฌ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.SSTI ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ํ”Œ๋ž˜๊ทธ๋Š” flag.txt, FLAG ๋ณ€์ˆ˜์— ์žˆ์Šต๋‹ˆ๋‹ค.   ๐Ÿ‘พ Exploit Algorithm & Payload> app.py๋”๋ณด๊ธฐ#!/usr/bin/python3from flask import Flask, request, render_template, render_template_string, make_response, redirect, url_forimport socketapp = Flask(__name__)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'app.secret_key = F.. 2024. 3. 24.
๋ฐ˜์‘ํ˜•