๐ SQL Injection์ ๋ง ๊ทธ๋๋ก ์ทจ์ฝํ SQL๋ฌธ์ ์ธ์ฆ ์ฐํ์ ๊ฐ์ ์ผ์ ์ํํ ์ ์๋ SQL๋ฌธ์ ๋ผ์๋ฃ๋ ๊ณต๊ฒฉ์ ๋๋ค
์๋ฅผ ๋ค์ด ์์๋ณผ๊น์?
ํ์ ์์ด๋๋ฅผ ์กฐํํ๋ ํ์ด์ง๊ฐ ์๋ค๊ณ ํฉ์๋ค
๊ทธ๋ ๋ค๋ฉด WAS์๋ SELECT * FROM member WHERE id = '์กฐํํ๋ ค๋ ์์ด๋'
์ ๊ฐ์ ์ฝ๋๊ฐ ์์ฑ๋์ด ์์ ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๋ค
๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์์ด๋ ์กฐํ๋์ normaltic'
์ ๊ฐ์ด ์์ฑํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
SQL๋ฌธ์ด SELECT * FROM member WHERE id = 'normaltic''
๋ก ์์ฑ๋๋ฉด์ ๋ฌธ๋ฒ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์
๋๋ค
์ด๋ฐ ์ ์ ์ด์ฉํด์ ๋ชจ๋ ํ์์ ์ ๋ณด๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์กฐํํ๋ ค๋ ์์ด๋
๋ถ๋ถ์ ์ฃผ์
ํ ์ ์์ต๋๋ค
๋ง์ฝ ์กฐํํ๋ ค๋ ์์ด๋
๋ถ๋ถ์ normaltic' or '1'='1
์ ๋ฃ์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
SELECT * FROM member WHERE id = 'normaltic' or '1'='1'
์ด ๋๋ฉด์ ์กฐ๊ฑด๋ฌธ์ด ํญ์ ์ฐธ์ด ๋๊ณ ,
๋ชจ๋ ํ์์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๊ฒ ๋ฉ๋๋ค
์ด๋ ๊ฒ ์ ์ ์ ์ ๋ ฅ๊ฐ์ ๊ฒ์ฆํ์ง ์์ ์ ์์ ์ธ SQL๋ฌธ์ ์ฃผ์ ํ๋ ๊ฒ์ SQL injection์ด๋ผ๊ณ ํฉ๋๋ค
๊ทธ๋ผ SQL injection์ ๋ก๊ทธ์ธ์ ์ ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
๋ก๊ทธ์ธ์ ์ํ ์ ๋ณด(์์ด๋, ๋น๋ฐ๋ฒํธ)๋ฅผ ๋ชฐ๋ผ๋, ํน์ ๋ก๊ทธ์ธ์ ํ์ง ์์๋ ์ธ์ฆ์ด ํ์ํ ํ์ด์ง์ ์ ์ํ๋ ์ผ์ด ๊ฐ๋ฅํด์ง๋๋ค
์ด๋ฐ๊ฒ์ ์ธ์ฆ ์ฐํ ๋ผ๊ณ ํฉ๋๋ค
๐ก ์ธ์ฆ ์ฐํ๋?
์ธ์ฆ์ด ํ์ํ ๊ณต๊ฐ์ ์ธ์ฆ์ ์ ๋๋ก ์งํํ์ง ์๊ณ ์ ์ํ ๊ถํ์ ํ๋ํ๋ ๊ฒ์ ์ธ์ฆ ์ฐํ๋ผ๊ณ ํฉ๋๋ค
์ธ์ฆ ์ฐํ๋ฅผ ํ๊ธฐ ์ํด์๋ ์ธ์ฆ์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๋์ง, ์ด๋ค ๋ก์ง์ผ๋ก ์ฒ๋ฆฌ๋๋ ์ง ํ์ ํด์ผ ํฉ๋๋ค
์ธ์ฆ ์ฐํ๋ฅผ ํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ์์๋ณผ๊น์?
- brute force : ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ๊ฒ์ ๋ฌด์์๋ก ๋์ ํ๋ ๋ฐฉ๋ฒ. ๋น๋ฐ๋ฒํธ๊ฐ ๊ธธ์ด์ง์๋ก ๋์ ํด์ผ ํ ๊ฒฝ์ฐ์ ์๊ฐ ๋ง์์ง๋ค
- ์ฌ์ ๋์ ๊ณต๊ฒฉ : ๋น๋ฐ๋ฒํธ๋ก ์ฐ์ผ๋งํ ๋จ์ด๋ฅผ ๋ชจ์์ ๋์ ํด๋ณด๋ ๋ฐฉ๋ฒ
- Jump : ์ธ์ฆ์ ์์ ๊ฑด๋๋ฐ๋ ๋ฐฉ๋ฒ
๋ก๊ทธ์ธ์์ SQL injection์ ์๋ํ๋ ์์๋ฅผ ์์๋ณผ๊น์?
๋ง์ฝ ๋ก๊ทธ์ธ ๊ณผ์ ์ด ์๋์ ๊ฐ์ด ์ด๋ฃจ์ด์ ธ ์๋ค๋ฉด ์ด๋จ๊น์?
SELECT * FROM member WHERE id = '์
๋ ฅ๋ฐ์ ์์ด๋' and pass = '์
๋ ฅ๋ฐ์ ๋น๋ฐ๋ฒํธ'
์์ด๋์ ๋น๋ฐ๋ฒํธ ์ค ์์ด๋๋ง ์๊ณ ์๊ณ , ์ด ์์ด๋๊ฐ normaltic
์ด๋ผ๊ณ ํ๊ฒ ์ต๋๋ค
์์ด๋์ normaltic' #
์ ๋ฃ์ผ๋ฉด
SELECT * FROM member WHERE id ='nomaltic' # and pass = '์
๋ ฅ๋ฐ์ ๋น๋ฐ๋ฒํธ'
๊ฐ ๋์ด,
๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํ๋ ๋ถ๋ถ์ด ์ฃผ์์ฒ๋ฆฌ๊ฐ ๋ฉ๋๋ค
ํน์ ์์ด๋์ normaltic' or '1'='1
์ ๋ฃ์ ๊ฒฝ์ฐ,
SELECT * FROM member WHERE id ='normaltic' or '1'='1 and pass = '์
๋ ฅ๋ฐ์ ๋น๋ฐ๋ฒํธ'
๊ฐ ๋์ด
๋น๋ฐ๋ฒํธ๊ฐ ๋ง์ง ์์๋ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ ์ธ์ฆ ์ฐํ์ ์ฑ๊ณตํฉ๋๋ค
์ง๊ธ๊น์ง SQL injection์ ๋ํด ์์๋ณด์์ต๋๋ค