[SegFault] (SQLi Advanced) - SQL Injection Point2
[SegFault] (SQLi Advanced)
SQL Injection Point2
falg๋ฅผ ์ฐพ์ผ์ธ์!
๋ฌธ์ ํ์
์์ ํ์ด์ง์ ๋ค์ด๊ฐ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์ฐ์ ํ์๊ฐ์ ์งํ ํ ๋ก๊ทธ์ธ์ ์๋ํ๋ค.
์ฌ์ฉํ ๊ณ์ : gear / 1234
๋ง์ดํ์ด์ง๋ฅผ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ๋ ธ์ถ๋์ด ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์กด์ฌํ์ง ์์ ๊ฒ์ํ์ ํ์ธํด๋ณธ๋ค.
SQL Injection Point
๊ฒ์ํ์ ๊ธ์ ํ๋ ์์ฑํ ํ ๊ฒ์์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๊ธฐ๋ก ํ๋ค.
๊ฒ์์ฐฝ์ ์ ๋ ฅ์ ๋ํ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ option_val์ด๋ผ๋ sort๋ฅผ ๋ด๋นํ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํ ์ ์๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐธ์ธ ๊ฐ๊ณผ ๊ฑฐ์ง์ธ ๊ฐ์ ๋ํ์ฌ ํ์ธํด๋ณธ๋ค.
1=1 and username
์์ ๊ฐ์ด ์ฐธ์ธ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ฒฝ์ฐ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
1=2 and username
์์ ๊ฐ์ด ๊ฑฐ์ง์ธ ๊ฐ์ ๊ฒฝ์ฐ ๊ฒ์์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๋๋ค.
์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก SQL Injection์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋จ๋๋ค.
์์ ๊ฒฐ๊ณผ์ ๋ํ์ฌ ๊ฒ์ ๊ธฐ๋ฅ์ ์์๋๋ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.
select {์ปฌ๋ผ} where {option_val} = {board_result} ํ์
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
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 ์ด๋ฆ ํ์ธํ๊ธฐ
์ด๋ค TABLE๊ณผ COLUMN์ด ์๋์ง ์์๋ด๊ธฐ ์ํด ์ด๋ค DB๊ฐ ์กด์ฌํ๋์ง ๋ถํฐ ํ์ธํด์ผ ํ๋ค.
DB์ ์ด๋ฆ์ด sqli_7์ธ ๊ฒ์ ํ์ธํ์๋ค.
5. Table ์ด๋ฆ ํ์ธํ๊ธฐ
6. Column ์ด๋ฆ ํ์ธํ๊ธฐ
7. Data ์ถ๋ ฅํ๊ธฐ
์ ์ฐจ์ ๋ฐ๋ผ ์งํํ๋ฉด ์์ ๊ฐ์ด ์ํ๋ flag๋ฅผ ํ๋ํ ์ ์๋ค.
์๊ฐํด๋ณผ ์
SQL Injection Point ํ์ธ์ ์ํ sort ๊ธฐ๋ฅ์์์ ์ฐธ/๊ฑฐ์ง ํ๋จ ๋ฐฉ๋ฒ
์ฐธ : case when (1=1) then username else title end
๊ฑฐ์ง : case when (1=2) then username else title end
์ฐธ / ๊ฑฐ์ง์ ๋ํ์ฌ ์ ๋ ฌ ๋ฐฉ์์ ๋ฐ๊พธ๋๋ก ํ์ฌ ์ ๋ ฌ ๋ฐฉ์์ ๋ฐ๋ผ ๋์ค๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค.
์ด๋ฅผ ํ์ธํ๋ค๋ฉด ์ด๋ SQL Injection์ ํฌ์ธํธ๊ฐ ๋ ์ ์๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์