Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋””/๋ชจ์˜ ํ•ดํ‚น - ๊ธฐ๋ก์ผ์ง€

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 05์ฃผ์ฐจ (๐Ÿ”“Authentication Bypass)

Gearvirus(junyup2) 2023. 11. 23. 19:11

์ธ์ฆ (Authentication) Bypass with SQL Injection


SQL Injection

 

SQL Injection์ด๋ž€?

๋ง ๊ทธ๋Œ€๋กœ SQL ์งˆ์˜๋ฌธ์„ ์‚ฝ์ž…ํ•˜์—ฌ ์„œ๋ฒ„ ์ธก์—์„œ ์ค€๋น„๋œ SQL ์งˆ์˜๋ฌธ์„ ๋ณ€์กฐํ•˜๋Š” ๊ณต๊ฒฉ์„ ์˜๋ฏธํ•œ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ๊ฒ€์ฆ์„ ์ œ๋Œ€๋กœ ํ•˜์ง€ ์•Š๋Š” ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด SQL๋ฌธ์„ ๋ผ์›Œ ๋„ฃ์„์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ์ž…๋ ฅ์ฐฝ์— ์•…์˜์ ์œผ๋กœ SQL ๋ฌธ์„ ๋ผ์›Œ๋„ฃ์–ด ๊ณต๊ฒฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ SQL Injection์ด๋‹ค.

SQL๋ฌธ์„ ์ž…๋ ฅ์ฐฝ์— ์ ์œผ๋ฉด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๊ธฐ์— ์ด๊ฒƒ์„ ๊ณต๊ฒฉ์ด๋ผ๊ณ  ํ• ๊นŒ?

์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๊ด€๋œ DB๊ฐ€ ์กด์žฌํ•˜๊ณ , ์š”์ฒญ์— ๋”ฐ๋ผ ํ•ด๋‹น DB๋ฅผ CRUD(์ €์žฅ,์กฐํšŒ,์ˆ˜์ •,์‚ญ์ œ)ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ SQL Query๊ฐ€ ์ค€๋น„๋˜์–ด์žˆ๋‹ค.

์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž๋ฉด?

ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์„ ํ•˜๋ฉด, ์ด๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๋Š” DB์—๊ฒŒ ์ด๋ฏธ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” Query๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.

์ด๋ฏธ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” Query์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ๊ฐ’์„ ๋„ฃ์–ด ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”์ง€์— ์ƒ๊ด€์—†์ด SQL ์งˆ์˜๋ฌธ์€ ๋™์ผํ•˜๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ, ๋งŒ์•ฝ ์„œ๋ฒ„์ธก์˜ SQL์˜ ํ˜•ํƒœ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด?

ํ•ด๋‹น SQL์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์˜ ์šฐํšŒ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

์ด๋ ‡๊ฒŒ ์ด๋ฏธ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” SQL์— '์ž…๋ ฅ ๊ฐ’'์„ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด SQL๋กœ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด์˜ SQL์„ ๋ฌด๋ ฅํ™” ์‹œ์ผœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ์–ด๋‚ด๋Š” ํ–‰์œ„๋ฅผ SQL Injection ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด ์ทจ์•ฝ์ ์„ ๋ง‰์ง€ ์•Š์œผ๋ฉด ์ธ์ฆ์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„์ด๋””๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ชฐ๋ผ๋„ ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ์•„์ด๋””๋งŒ ์•Œ์•„๋„ ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋“ฑ ๋ณด์•ˆ์— ํฐ ์ทจ์•ฝ์ ์„ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


์ธ์ฆ ์šฐํšŒ(Authentication Bypass)

๋ณธ๋”” Bypass๋ผ ํ•จ์€ '์šฐํšŒ'๋ผ๋Š” ๋œป์œผ๋กœ ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ํ”ผํ•ด๊ฐ์„ ์˜๋ฏธํ•˜๋Š” ๋‹จ์–ด์ด๋‹ค.

์ธ์ฆ์€ ๊ทธ ์‚ฌ๋žŒ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด๋‹ค.

์ฆ‰, ์ธ์ฆ ์šฐํšŒ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค(Access) ๊ถŒํ•œ์ด ์—†๋Š” ์ž๊ฐ€ ์ธ์ฆ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ธ์ฆ์— ์„ฑ๊ณตํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์œ„์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ธ์ฆ ๋กœ์ง์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ(์ทจ์•ฝ์ ์ด ์žˆ๋Š” ๊ฒฝ์šฐ), ์šฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

์ธ์ฆ ์šฐํšŒ ์ทจ์•ฝ์ 

Cookie (Client ์ •๋ณด) ์‹ ๋ขฐ ๋ฌธ์ œ
    - ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด์„œ ์ธ์ฆํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค.
    - (์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ, ์ด์šฉ์ž๊ฐ€ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ์ด๊ธฐ์— Cookie ๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ)

ํŒŒ๋ผ๋ฏธํ„ฐ
    - ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์กฐ์ž‘ ๋ณ€์กฐํ•˜์—ฌ ์ž…๋ ฅ๋œ ๊ฐ’์ด ์•„๋‹Œ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์ž„์˜ ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ

์ง์ ‘ ์ ‘๊ทผ(Direct Access)
    - ์ธ์ฆ ํ›„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ or 2์ฐจ ์ธ์ฆ์˜ ๊ฒฝ์šฐ, ๊ทธ ๋’ค์— ์š”์ฒญ์„ ์ง์ ‘ ๋ณด๋‚ด๋Š” ๊ฒƒ์œผ๋กœ ์šฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ
    - ์ธ์ฆ ํ›„ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด ์„ธ์…˜์— ์ €์žฅํ•˜๊ฑฐ๋‚˜, ๊ทธ ํ† ํฐ์„ ๋“ค๊ณ  ๊ทธ ๋’ค ์š”์ฒญ์„ ํ•˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 

SQL Injection์€ ์œ„์™€ ๊ฐ™์€ ์ธ์ฆ ์šฐํšŒ๋ฅผ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘์˜ ํ•œ๊ฐ€์ง€์ด๋‹ค.

๋กœ๊ทธ์ธ ๋กœ์ง์„ ์šฐํšŒํ•ด๋ณด์ž๋ฉด? ์–ด๋–ป๊ฒŒํ•˜๋ฉด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ๊ฒŒ ํ• ๊นŒ?

 

๋กœ๊ทธ์ธ ๋กœ์ง ๋ณ„ ์šฐํšŒ ์ „๋žต

๐Ÿ’ก ๋กœ๊ทธ์ธ ์‹๋ณ„/์ธ์ฆ ๋กœ์ง ๊ฐ€๋Šฅ์„ฑ๋“ค์„ ๋จธ๋ฆฌ ์†์— ์ƒ๊ฐํ•ด๋ณด๊ณ , SQL ์งˆ์˜๋ฌธ์„ ์–ด๋–ป๊ฒŒ ๋„ฃ์–ด์•ผ ๋กœ๊ทธ์ธ์„ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์ž!

(์ˆ˜์ •์ค‘)

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ SQL Injection์„ ํ†ตํ•ด ํ•ด๋‹น ๊ณ„์ •์˜ ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ๋žŒ์ด ์„œ๋ฒ„ ์ธก์— ์ž‘์„ฑ๋œ SQL์— ๋‹ค๋ฅธ SQL์„ ์ฃผ์ž…ํ•จ์œผ๋กœ์จ ์ž์‹ ์ด ์›ํ•˜๋Š” ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ๋˜๋„๋ก ์ธ์ฆ ๊ณผ์ •์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ DB ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์ฆ์„ํ•˜๋Š” ๊ฒฝ์šฐ, SQL Injection์ด ์ธ์ฆ ์šฐํšŒ์˜ ์ˆ˜๋‹จ์ด ๋  ์ˆ˜ ์žˆ์Œ์„ ์œ ์˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.


 

์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜