WHERE ์ ์ด ์๊ณ , ๊ทธ WHERE ์ ์ด ์ฐธ์ด๋ผ๋๊ฒ์ด ๊ฐ์ ๋์ด์์ ๋, ๊ทธ WHERE์ ๋ค์ AND <์ฝ๋>๋ฅผ ์ฝ์ ํ๋ฉด <์ฝ๋>๊ฐ ์ฐธ์ผ ๋๋ง ์ฟผ๋ฆฌ๋ฌธ์ด ์๋ํ๋ค.
์ฐ๋ฆฌ๋ <์ฝ๋> ๋ถ๋ถ์ด ์ฐธ์ธ์ง ๊ฑฐ์ง์ธ์ง ๊ฒ์ฌํ๊ณ ์ถ์ ๋ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
๋ง์ฝ ์ฟผ๋ฆฌ๋ฌธ์ด ์ ๋๋ก ์๋ํ๋ค๋ฉด <์ฝ๋>๋ถ๋ถ์ด ์ฐธ์ด๋ผ๋ ๋ป์ผ ๊ฒ์ด๋ค.
์ ๋ด์ฉ์ด Blind Injection ๊ณต๊ฒฉ์ ํ๋ฆ์ด๋ค.
๊ณต๊ฒฉ์ ํํ ๋ ๊ผญ ์ค์ํ ์ ๋ณด(ex: password ์ฒซ๊ธ์๊ฐ 'm'์ธ๊ฐ? ์ด๋ฐ๊ฑฐ ๋ง๊ณ ) ๊ฐ๋จํ ์ ๋ณด(๋ฉํ ์ ๋ณด)๋ ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์์๋ผ ์ ์๋ค.
์ฌ๊ธฐ์ ์ ๊ธฐํ ๊ฒ์ ์ด๋ค ์ ๋ณด๊ฐ ์กด์ฌํ๋, ๋ง๋๋๋ ์์๋ผ ์ ์๋ค๋ ๊ฒ์ด๋ค!! ๊ทธ๋ ๋ค๋ฉด ์กด์ฌ์ฑ์ ๋ํ ์ฟผ๋ฆฌ๋ ์ด๋ป๊ฒ ์ง๋ฉด ์ข์๊น? ์์ ์์๋ฅผ select ํด์ฃผ๋ฉด๋๋ค. ์ด๊ฒ ๋ฌด์จ ๋ป์ผ๊น?
์๋ฅผ ๋ค์ด 'users' ๋ผ๋ ํ ์ด๋ธ์ด ์ง์ง๋ก ์กด์ฌํ๋์ง ์๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ์. (zzz๋ ์ฌ๋ฐ๋ฅธ ์ ๋ณด๋ผ๊ณ ๊ฐ์ )
WHERE cookie='xyz' AND (SELECT '1' FROM users LIMIT 1)='1
์ด๋ฐ ์์ผ๋ก ํ๋ฉด ๊ดํธ ์์ ์๋ SELECT๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ '1'์ด๋ผ๋ ๋ฌธ์์ด๋ก ๋ณํ๋๋ค. (์ฆ SELECT์ ๊ฒฐ๊ณผ๊ฐ ํญ์ ํ ์ด๋ธ๋ก ๋์ค๋ ๊ฒ์ ์๋๋ผ๋ ๋ป! ์ด๋ฐ์์ผ๋ก ๋ฌด์ธ๊ฐ์ ๋น๊ตํ ์ ์๋ ๊ฐ์ด ๋์ค๋ฉด ์ด๋ฅผ ๊ณต๊ฒฉ์๋ ์ด์ฉํ ์ ์์๋ฏ?) ์ฌ๊ธฐ์ ๊นจ๋ฌ์ ์ ์๋ ๊ฑฐ๋ SELCT์ ๊ฒฐ๊ณผ๊ฐ '1'๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ '1'๊ณผ ๋น๊ตํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ก LIMIT 1์ ๋ถ์ฌ์ฃผ๋ ์ด์ ๋ 1 ํ๋๋ง ์ถ์ถํด์ผ๋๊ธฐ ๋๋ฌธ์ด๋ค. (LIMIT 1์ด ์์ผ๋ฉด ์ฌ๋ฌ๊ฐ๊ฐ ์ถ๋ ฅ๋๋ฏ๋ก '1๊ณผ ๋น๊ตํ ์ ์์)
์๋ฌดํผ users ํ ์ด๋ธ์ด ์กด์ฌํ๋ค๋ฉด AND ์ค๋ฅธ ์ชฝ ์ฟผ๋ฆฌ๋ 1์ ๋ฐํํ๊ฒ ์ง๋ง, ๋ง์ฝ users ํ ์ด๋ธ์ด ์๋ค๋ฉด 1์ ๋ฐํํ์ง ์์ ๊ฒ์ด๋ค.
์ด์ฒ๋ผ WHERE ๋ค๊ฐ ์ฐธ์ผ ๋๋ง(์ ๊ฒฝ์ฐ๋ FROM ๋ค), ๋จ์ํ ์์๋ฅผ SELECTํ๋ฉด ์์๊ฐ ์ถ๋ ฅ๋๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์.
๊ทธ๋ฆฌ๊ณ ์๋ฅผ ์ค์ ์์ 1์ด๋ ๋น๊ตํ๋ฉด ๊ฐ์ ํ ๋๊น ์ด ๋ฐฉ๋ฒ์ ์ด์ฉํด์ ๊ตฌํ๋ฉด๋๋ค.
์ด๋ฅผ ๊ฐ๋จํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋น์ ํ๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์์ ๊ฒ ๊ฐ๋ค
if (username='admin' and len(password)>1):
print data(admin)
#์ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด 1์ถ๋ ฅ
if (username='admin' and len(password)>1):
print 1
#์ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด 1์ถ๋ ฅ
์ด๋ฐ ๋๋์ด ์๋๊น? 1์ด ์กฐ๊ฑด์์ด๋ ์๋ฌด ์๊ด ์์ด๋ ์ถ๋ ฅ๋๋ ๊ฒ์ฒ๋ผ!
์๋ฌดํผ.. ์ฐ๋ฆฌ๋ ์ด ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ๋ค๋ฅธ ์ ๋ณด๋ค๋ ํ์ธํ ์ ์๋ค. ๊ทธ์ ๋ค์ ํ์ธํ๊ณ ์ถ์ ์ ๋ณด๋ง ๋ค์ ์ฐ๋ฉด ๋๋ค.
์์ ) users ํ ์ด๋ธ ์์ 'admin'์ด๋ผ๋ user๊ฐ ์กด์ฌํ๋๊ฐ?
WHERE cookie='xyz' AND (SELECT 'a' FROM users WHERE user_name='admin')='a
์์ ) users ํ ์ด๋ธ ์์ 'admin'์ด๋ผ๋ user๊ฐ ์กด์ฌํ๋๊ฐ?
WHERE cookie='xyz' AND (SELECT 'a' FROM users WHERE user_name='admin')='a
์์ ) admin์ password์ ๊ธธ์ด๊ฐ 1๋ณด๋ค ํฐ๊ฐ?
WHERE cookie='xyz' AND (SELECT 'a' FROM users WHERE username='admin' AND LENGTH(password)>1)='a
๋ฐ๋ก ์์ ์์ ๋ LENGTH(password)=x ๋ก ํด์ x์ ๊ฐ์ intruder๋ก ๋ฐ๊ฟ์ ๋ณด๋ด์ฃผ๋ฉด ๊ธธ์ด๋ฅผ ๋นจ๋ฆฌ ์ฐพ์ ์ ์์ ๊ฒ์ด๋ค.
์ํผ ๊ทธ๋์ ๋๋์ ์ ๋ธ๋ผ์ธ๋ ์ธ์ ์ ๊ณต๊ฒฉ์ ์ด๋ค ์ ๋ณด๋ฅผ ์ซ๋ผ๋ฝ ๋ณด์ฌ์ฃผ๋๊ฒ ์๋๊ธฐ ๋๋ฌธ์ ๋ญ๊ฐ ์ฐ๋ฆฌ๊ฐ ์ถ์ธกํ๊ณ ์ถ์๊ฑฐ? ์ฐธ์ด๋ผ๊ณ ์์๋๋๊ฑฐ?๋ฅผ ์ ํด์ ๊ณต๊ฒฉํ๋ ๊ฒ์ด๋ค!!! ์๋ฅผ๋ค์ด information_schema์ ์นผ๋ผ๋ค์ blind attack์ ํตํด์ ์ซ๋ผ๋ผ๋ฝ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก !!
์ ๋ฆฌ
- SELECT ์ฟผ๋ฆฌ์ ๊ฐ์ด ํ ์ด๋ธ์ด ์๋์ ์๋ค + SELECT ์ฟผ๋ฆฌ์ ๊ฐ์ ๋น๊ตํ ์ ์๋ค
- FROM WHERE ์ ์ด ์ฐธ์ด๋ฉด SELECT ์์๋ฅผ ํ์ ๋ ์์๊ฐ ์ถ๋ ฅ๋๋ค!!!!!!!!!!
- SELECT ์ ์์ SELECT ์ ์ด ๋ค์ด๊ฐ ์ ์๋ค
- SELECT ๋ค์ 'a'๋ฑ์ ์์๋ฅผ ์จ์ฃผ๋ฉด ์กด์ฌ์ฑ๋ ๊ฒ์ฆํ ์ ์๋ค.
'๐ Security > Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋๋ฆผํต(Dreamhack)] xss-1 (0) | 2023.09.22 |
---|---|
[BurpSuite] Cluster Bomb Attack (0) | 2023.03.06 |
[BurpSuite] Intruder ๊ธฐ๋ฅ ์์ ๊ณต๊ฒฉ๋ค ์ ๋ฆฌ (0) | 2023.03.03 |
[SQL Injection ์ค์ต] SQL injection UNION attack, determining the number of columns returned by the query (PortSwigger) (0) | 2023.02.26 |
[์นํดํน ์ ๋ฌธ ์๋ฆฌ์ฆ (1)] BurpSuite ์ฌ์ฉ๋ฒ (0) | 2023.02.10 |