์ด๋์๋ ์๋ SQL ์ธ์ ์
๊ณ ๊ธ/์์ฉ ๊ณต๊ฒฉ ๊ธฐ๋ฒ!
๋ชจ์ํดํน ๊ณต๊ฒฉ์ ์๋ก์ด ๋ฐฉํฅ์ ์ ์ํด๋๋ ค์.
๐ ๋ชจ์ํดํน ์ค๋ฌด์๊ฐ ์๋ ค์ฃผ๋, SQL Injection ๊ณต๊ฒฉ ์๋ฆฌ์ฆ!
- PART(1) : ๊ธฐ์ด / ์ค๋ฌด ๊ณต๊ฒฉ / ์ํ์ด ์ฝ๋ฉ โ ์ง๋ ๊ฐ์
SQL Injection ๊ณต๊ฒฉ์์ ๊ฐ์ฅ ์ค์ํ ๋ด์ฉ์ ๋ค๋ฃจ๋ ๊ต์ก์ผ๋ก, ๊ธฐ์ด์์๋ถํฐ ์ค๋ฌด์์ ์ฌ์ฉ๋๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ๋ค๊ณผ ๋ค์ํ ๋์ ๋ฐฉ์ ๋ฐ ์ํ์ด ์ฝ๋ฉ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค. ์ดํ ์งํ๋ ๊ต์ก์ ๊ธฐ๋ณธ์ด ๋๋ ํ์ ๊ต์ก์
๋๋ค.
- PART(2) : ์์ฉ / ์ฌํ / ๊ณ ๊ธ โ ํ์ฌ ๊ฐ์
PART(1)์์ ๋ค๋ฃจ์ง ์์ ์์ฉ ๊ณต๊ฒฉ ๊ธฐ๋ฒ๊ณผ ๊ณ ๊ธ ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ ๋ํ ๊ต์ก์
๋๋ค.
- PART(3) : ์๋ํ ๋๊ตฌ ์ ์ โ ์ ์ ์์
๋ฐฐ์ ๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ๋ค์ ์๋ํ ๋๊ตฌ์ ๊ทธ๋๋ก ์ ์ฉํ์ฌ Python ๊ธฐ๋ฐ์ ์๋ํ ๋๊ตฌ๋ฅผ ์ ์ํ๋ ๊ต์ก์
๋๋ค.
๐ SQL Injection Part 1&2์ ์ฐจ์ด์ !
์ด์ ๊ฐ์ Part(1)์ ๊ณต๊ฒฉ์ ๋ํ ๊ธฐ์ด์ ์๋ฆฌ ๊ทธ๋ฆฌ๊ณ ๊ณต๊ฒฉ์ ํต์ฌ ์ด๋ก ๋ฐ ์ค์ต์ ๋ํ ๊ฐ์์๋ค๋ฉด, ๋ณธ ๊ฐ์๋ SQL Injection ๊ณต๊ฒฉ์ ํ
ํฌ๋์ ๋ถ๋ถ์ ๋ค๋ฃน๋๋ค. ๋ฐ๋ผ์ Part(1)์ ๋ณธ ๊ฐ์์ ๋ผ๋๊ฐ ๋๋ ๊ฐ์๋ก, ๋จผ์ Part(1) ๊ฐ์๋ฅผ ์๊ฐํ์ ๋ค์ Part(2) ๊ฐ์๋ฅผ ๋ฃ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
๐ SQL Injection ๊ณต๊ฒฉ, ์ด๋ป๊ฒ ํด์๋์?
์๋ ํญ๋ชฉ์ ํด๋น๋๋ค๋ฉด, ๋ณธ ๊ฐ์๋ฅผ ํตํด ์~์ํ๊ฒ ํด๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค!
- ๊ฒ์ํ์ ๊ฒ์๊ธ์ด ์๋ ํ๊ฒฝ์์ ๊ณต๊ฒฉ์ ๋ชปํ๊ฑฐ๋, Time-Based ๊ณต๊ฒฉ์ ์งํํ์ง๋ ์์ผ์
จ๋์?
- Error-Based, Union-Based ๊ณต๊ฒฉ ์ ํ๋ํ๋์ฉ ๋ฐ์ดํฐ ์ถ์ถ์ ํ์ง๋ ์์ผ์
จ๋์?
- Blind-Based ๊ณต๊ฒฉ ์ ํ๋์ ๋ฌธ์ ์ถ๋ก ์ ์ํด ์ต์ 7๋ฒ ์์ฒญ์ ํ์ง๋ ์์ผ์
จ๋์?
- DB์ ์ฐ๋๋ ํ์ผ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ๋ํด ํ์ผ ๋ค์ด๋ก๋ ์ทจ์ฝ์ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ฌ์ค์ ์๊ณ ๊ณ์
จ๋์?
- DB์ ์ฐ๋๋ ํ์ผ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ๋ํด Union-Based ๊ณต๊ฒฉ์ ํตํ ๋ฐ์ดํฐ ์กฐํ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ฌ์ค์ ์๊ณ ๊ณ์
จ๋์?
๐ก ์ด ๊ฐ์๋ฅผ ๋ฐ๋์ ์๊ฐํด์ผ ํ๋ ์ด์ !
๋ณธ ๊ฐ์์์๋ ๊ธฐ์กด์ ์๋ ค์ง ๊ณต๊ฒฉ ๊ธฐ๋ฒ๋ ๋ค๋ฃจ์ง๋ง, ์ ์๋ ค์ง ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ด ์๋ ์ง์ ์ฐ๊ตฌ๋ฅผ ํตํด ์์๋ธ ๊ธฐ๋ฒ์ ๋ํ ๊ฒ๋ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋ฐ๋ก Blind-Based SQL Injection ๊ณต๊ฒฉ์ ๋ํ ์๋ก์ด ๋ฐฉํฅ์ ์ ์ํ๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ์
๋๋ค!
์ด ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ ํตํด ๊ธฐ์กด์ ์๋ ค์ง ๊ณต๊ฒฉ ๊ธฐ๋ฒ๋ณด๋ค ์ด๋ป๊ฒ ๋์ฑ ๋น ๋ฅด๊ณ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๋์ง์ ๋ํด์๋ ๊ฐ์์์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค!
๊ทธ๋์... ์ค๋ฌด์๋ค์ ๋ฐ๋์ ์ด ๊ฐ์๋ฅผ ๋ค์ด์ผ๊ฒ ์ฃ !?
๐ ๊ฐ DBMS์ ๋ํ PHP ๊ธฐ๋ฐ์ ์ค์ต ๊ฒ์ํ ์ ๊ณต!
PHP-MYSQL, PHP-MSSQL, PHP-ORACLE ๊ธฐ๋ฐ์ ์ค์ต ๊ฒ์ํ์ ์ ๊ณตํด๋๋ฆฌ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ค์ํ DBMS๋ณ SQL Injection ์ค์ต์ด ๊ฐ๋ฅํฉ๋๋ค.
๐๐ปโโ๏ธ ์ง๋ฌธ Q&A
Q. Part(1) ๊ฐ์๋ฅผ ์๊ฐํ์ง ์์๋๋ฐ Part(2) ๊ฐ์๋ฅผ ์ดํดํ ์ ์์๊น์?
A. Part(1) ๊ฐ์๋ฅผ ๋ฐ๋์ ์๊ฐํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ SQL Injection ๊ณต๊ฒฉ์ ๋ํ ์ดํด๊ฐ ์ถฉ๋ถํ ๋ ์ํ์์ ํด๋น ๊ฐ์๋ฅผ ๋ฃ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ๋ง์ฝ Part(1) ์๊ฐ์ ํ์ง ์์์ง๋ง SQL Injection ๊ณต๊ฒฉ์ ๋ํ ์ง์์ด ์ถฉ๋ถํ ์๋ค๋ฉด Part(2) ์๊ฐ์ ํฐ ๋ฌธ์ ๋ ์์ง๋ง, ์ฌ์ฉ๋๋ ๋ช
์นญ์ด๋ ๋ชจ๋ฅด๋ ๋ด์ฉ์ด ์์ ์ ์์ผ๋ ๋๋๋ก Part(1) ๊ฐ์๋ฅผ ์๊ฐํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
Q. ์ค๋ฌด์์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋ ๊ณต๊ฒฉ ๊ธฐ์ ์ธ๊ฐ์?
A. ์, ๋น์ฐํฉ๋๋ค! ๋ฐ๋ก ์ ์ฉํ ์ ์์ผ๋ฉฐ ๊ธฐ์กด ๊ธฐ์ ๋ณด๋ค ๋ ํจ์จ์ ์ผ๋ก ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
Q. ๋์๋ฐฉ์์ ๋ํ ๋ด์ฉ๋ ์๋์?
A. ์๋์, ์์ต๋๋ค. ๋์๋ฐฉ์์ ๋ํ ๋ถ๋ถ์ Part(1) ๊ฐ์๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.
๐ก ํ์ ์์ฒญ ๊ฐ์ข
โป ๋ณธ ๊ต์ก PPT์๋ ๋ค์ด๋ฒ์์ ์ ๊ณตํ ๋๋๊ธ๊ผด์ด ์ ์ฉ๋์ด ์์ต๋๋ค.