[SegFault] (SQLi Advanced)
SQL Injection Point4
flag๋ฅผ ์ฐพ์ผ์ธ์!
๋ฌธ์ ํ์
์์ ํ์ด์ง์ ๋ค์ด๊ฐ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์ฐ์ ํ์๊ฐ์ ์งํ ํ ๋ก๊ทธ์ธ์ ์๋ํ๋ค.
์ฌ์ฉํ ๊ณ์ : gear / 1234
๋ง์ดํ์ด์ง๋ฅผ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ๋ ธ์ถ๋์ด ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์กด์ฌํ์ง ์์ ๊ฒ์ํ์ ํ์ธํด๋ณธ๋ค.
SQL Injection Point
๊ฒ์ํ์ ๊ธ์ ํ๋ ์์ฑํ ํ ๊ฒ์์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๊ธฐ๋ก ํ๋ค.
๊ฒ์์ฐฝ์ ์ ๋ ฅ์ ๋ํ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ option_val์ด๋ผ๋ sort ๋ฅผ ๋ด๋นํ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํ ์ ์์๋ค.
ํด๋น ํ๋ผ๋ฏธํฐ์ ๋ํ์ฌ ์ฐธ์ธ ๊ฐ๊ณผ ๊ฑฐ์ง์ธ ๊ฐ์ ๋ฃ์ด์ฃผ์ด ์ฐจ์ด๋ฅผ ํ์ธํด๋ณธ๋ค.
1=1 and username
์์ ๊ฐ์ด ์ฐธ์ธ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ฒฝ์ฐ ๊ฒ์์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
1=2 and username
๋ฐ๋ฉด ์์ ๊ฐ์ด ๊ฑฐ์ง์ธ ๊ฐ์ ๊ฒฝ์ฐ ๊ฒ์์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๋๋ค.
์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก SQL Injection์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋จ๋๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
1. SQL Injection ๊ฐ๋ฅ ์ฌ๋ถ ํ๋จ
๊ฒ์ํ์ ๊ฒ์ ๊ธฐ๋ฅ์ ์ด์ฉํ Union SQL Injection์ด ๊ฐ๋ฅํ ๊ฒ์ ํ์ธํ์๋ค.
2. Column์ ๊ฐ์ ํ์ ํ๊ธฐ
order by ์ ์ ์ด์ฉํ์ฌ ์กด์ฌํ๋ COLUMN์ ๊ฐ์๋ฅผ ํ์ธํ๋ค.
option_val = username order by 1~10#
1~10๊น์ง๋ ๊ฒ์์ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง๋ง 11๋ถํฐ๋ ๊ฒ์์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๋ ๊ฒ์ ํ์ธํ์๋ค. ์ด๋ ์ ๋ ฌ ๊ฐ๋ฅํ ์ปฌ๋ผ์ ๊ฐ์๊ฐ 10๊ฐ๋ผ๋ ์๋ฏธ๋ก์ COLUMN์ ๊ฐ์๊ฐ 10๊ฐ๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
3. ์ถ๋ ฅ๋๋ Column์ ์์น ํ์ ํ๊ธฐ
1~10์ COLUMN ์ค ์ถ๋ ฅ๋๋ ์ปฌ๋ผ์ ์์น๋ฅผ ํ์ ํด์ผ ํ๋ค.
option_val = username union select 1,2,3,4,5,6,7,8,9,10#
๊ทธ ๊ฒฐ๊ณผ ์์ ๊ฐ์ด 1~10์ COLUMN์ค 1~4์ ์ปฌ๋ผ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
UserID | Title | Views | Date
1 | 2 | 3 | 4
๊ณต๊ฒฉ Format ์ค์ ํ๊ธฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ 1~10์ ์ปฌ๋ผ ์ค 1~4์ ์ปฌ๋ผ์ด ์ถ๋ ฅ๋๊ณ ์์ผ๋ฏ๋ก, ๊ทธ ์ค ์๋ฌด ์์น์๋ ์ํ๋ SQL ๊ตฌ๋ฌธ์ ์ฝ์ ํ๋ฉด๋๋ค.
option_val=username select _____,2,3,4,5,6,7,8,9,10#
4. DB ์ด๋ฆ ํ์ธํ๊ธฐ
DB์ ์ด๋ฆ์ด sqli_9์ธ ๊ฒ์ ํ์ธํ์๋ค.
5. Table ์ด๋ฆ ํ์ธํ๊ธฐ
flagHere Table์ ๋ํ์ฌ ํ์ธํด๋ณด์.
6. Column ์ด๋ฆ ํ์ธํ๊ธฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ WHERE ์ ๋ฃ๋ ๊ฒฝ์ฐ ๋์ํ์ง ์์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ์ฒด๋ฅผ ์ค์บํ๋ฉฐ ํ์ธํด๋ด์ผ ํ๋ค.
๋๋ถ๋ถ ๋ถํฐ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ์๊ฐํ ์์น์ ์๊ฐํ Column์ด ์กด์ฌํ์ง ์์๋ค.
์๋ถ๋ถ ๋ถํฐ limit์ ํตํด ์ฐจ๋ก๋๋ก ์ค์บํด๋ณด๊ธฐ๋ก ํ๋ค.
์ค๊ฐ ์์น์ FLAG๋ผ๋ ์ด๋ฆ์ COLUMN์ด ํ์ธ๋์๋ค.
(์์ํ ๊ฒฐ๊ณผ๋ ๊ฐ์ฅ ๋ท์ชฝ์ flag ์ ๊ฐ์ด ์๋ฌธ์๋ก ๋์ด ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. - ๊ธฐ์กด์ ๋ฌธ์ ๋ค์ด ๊ทธ๋ฌ๊ธฐ ๋๋ฌธ...)
7. Data ์ถ๋ ฅํ๊ธฐ
์์์ ํ์ธ๋ FLAG COLUMN์ ๋ํ์ฌ ํ์ธํด๋ณธ๋ค.
์์ ๊ฐ์ด ์ ์ฐจ์ ๋ฐ๋ผ ์งํํ ๊ฒฐ๊ณผ ์ํ๋ flag๋ฅผ ํ๋ํ ์ ์์๋ค.
์๊ฐํด๋ณผ ์
๋ณธ ๋ฌธ์ ์ Column๋ช ๊ณผ ๊ฐ์ด COLUMN์ ์์น์ ์ด๋ฆ์ด ์๊ฐํ ๊ฒ๊ณผ ๋ค๋ฅผ ์ ์๋ค.
ํน์ TABLE / COLUMN์ ๋ํ์ฌ ์ด๋ฐ ์์น์ ์์ ๊ฒ์ด๋ค. ์ด๋ฐ ์ด๋ฆ์ผ ๊ฒ์ด๋ค. ๋ผ๋ ์ถ์ธก์ ์ด๋์ ๋ ํ๋๋ผ๋, ๋ด ์ถ์ธก์ด ๋ง์ง ์์ ๊ฒฝ์ฐ๋ ์๊ฐํ์ฌ ์ ์ฒด์ ์ผ๋ก ์ค์บํด๋ด์ผ ํ๋ค๋ ์๊ฐ๋ ํ ์ ์์ด์ผ ํ๋ค.
(๋นํฉํ์ง ์๋๋ก ํ์.)
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์