11๋ฒ์งธ ๋ฌธ์ ์ธ " golem " ๋ฌธ์ ๋ฅผ ํ์ธํด๋ณด๋ฉด 2๊ฐ์ง ๊ฒ์ฆ์ ์ฐจ๋ฅผ ๊ฑฐ์น๊ณ ์์ต๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET [pw])) exit("No Hack ~_~"); if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); ๊ฒ์ฆํ๊ณ ์๋ ๋ฌธ๊ตฌ๋ค์ ํ์ธํด๋ณด๋ฉด ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ฐ์ฐ์์ธ " or, and, = " ๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด์ ์ถ๋ ฅํด์ฃผ๋ ํจ์์ธ " substr " ๊น์ง ๊ฒ์ฆ์ ํ๊ณ ์์ต๋๋ค. ์ ๋จ๊ณ์ ๋ ๋ฒจ์์๋ or์ and ์ฐ์ฐ์ ๋์ฒด ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง๋ง substr ํจ์๊น์ง ์ฐํํด์ผ ๋๋ ์ข ๋ ๊น๋ค๋ก์์ก๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. $query = "select pw from prob_golem where id..
10๋ฒ์งธ ๋ฌธ์ ์ธ " skelton "์ ๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET [pw])) exit("No Hack ~_~"); ๊ฒ์ฆ๋๋ ๋ฌธ์์ด์ ํ์ธํด ๋ณด๋ฉด ์ด์ฒ๋ผ ํน์๊ธฐํธ ๋ช๊ฐ๋ง ๊ฒ์ฆ์ ํ๊ณ ์์ต๋๋ค. $query = "select id from prob_skeleton where id='guest' and pw='{$_GET [pw]}' and 1=0"; ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ๋ณ์๋ " pw='{$_GET[pw]} " ์ด ๋ถ๋ถ์ ์ฌ์ฉํ๋ฉด ๋ ๊ฑฐ ๊ฐ์ง๋ง " and 1=0 " ์ฐ์ฐ์๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ '1'='1' ํํ์ ์ฐธ๊ฐ์ ๋์ ํด๋ ๊ฑฐ์ง ๊ฐ์ผ๋ก ์ธ์์ ํ๊ณ ์์ต๋๋ค. if($result ['id'] == 'admin') solve("skeleton"); ๋ํ ..
9๋ฒ์งธ ๋ฌธ์ ์ธ " vampire " ๋จ๊ณ์ ๋๋ค. ์ฟผ๋ฆฌ๋ฌธ์ ์ ๋ ฅ๋ฐ์ ์คํ๋๋ ๋ณ์๋ " id='{$_GET [id]} " ๋ก ์ ์ ํ์๋ ๋ฌธ์ ๋ค๊ณผ ์ ์ฌํ๊ฒ ํค์๋ ์ฐํ๋ฅผ ํด์ผ ๋ ๊ฒ ๊ฐ์ ๋ณด์ ๋๋ค. $_GET [id] = str_replace("admin", "",$_GET [id]); replace ํจ์๋ฅผ ํตํด ์ฟผ๋ฆฌ๋ฌธ์ " admin " ์ด ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ ์คํ์ด ๋์ง ์์ต๋๋ค. ๋ํ ๋, ์ ๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์๊ธฐ ๋๋ฌธ์ ADMIN ๊ฐ์ ๋๋ฌธ์๋ก ์ ๊ทผํด๋ ์คํจํ๊ธฐ ๋๋ฌธ์ ์ด๋ด ๋๋ ํผ๋ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ํด๊ฒฐํ๋ฉด ๋ฉ๋๋ค. ๋ธ๋๋ฆฌ์คํธ๋ก ํด๋น ํค์๋๋ฅผ ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ์ ๊ฑฐํ๊ณ ์๋ ๊ฒฝ์ฐ์๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์์ด ์ฌ์ด์ ์ฝ์ ํ๋ ํผ๋ํ ๊ธฐ๋ฒ์ ์ด์ฉํ๊ฒ ๋๋ฉด ์ค๊ฐ์ " admin " ํค์๋๋..
" troll " ๋ฌธ์ ์ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ๋ฌธ์ ์คํ์์ผ์ฃผ๋ ๋ณ์๊ฐ pw ๊ฐ ์๋ " id='{$_GET[id]} " ์ฆ id ์ธ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฒ ๋ฌธ์ ๋ ํจ์ค์๋๋ฅผ ๋์ถ์ํค๋ ๊ฒ์ด ์๋ ํด๋น ๊ณ์ ์ผ๋ก ๊ทธ๋ฅ ์ ๊ทผํ๊ธฐ๋ง ํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํด๋น ๋ฌธ์ ๋ ํน์ " ํค์๋ "๋ฅผ ๋ธ๋๋ฆฌ์คํธ ๋ฐฉ์์ผ๋ก ํํฐ๋ง ์ ์ฑ ์ ๊ฑธ์ด๋๋ฉด ์ด๋ป๊ฒ ์ ๊ทผ์ ์๋ํด ๋ณผ ๊ฒ์ธ๊ฐ? ์ ๋ํ ๊ณ ๋ฏผ์ ํด๋ณด๋ ๋ฌธ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฝ๊ฒ ์๊ฐํ๋ฉด ๊ต์ฅํ ์ฌ์ด ๋ฌธ์ ์ด๊ณ ์ด๋ ต๊ฒ ์๊ฐํ๋ฉด ๋๋ฌด ๋ฉ๋ฆฌ ๋์๊ฐ ์๋ ์๋ ๋ฌธ์ ์ ๋๋ค. MYSQL ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์๋ฌธ์ ๊ตฌ๋ถ์ด ์์ด์ " admin " = " ADMIN "์ด๋ ๋๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋ฐ์๋ค์ด์ง๋ง ์๋จ์ ์์ค๋ฅผ ๋ณด์๋ฉด preg_match์ ์ ์ธ๋ ์ฝ๋๊ฐ ๋ฌธ์ ์ธ ๊ฒ์ผ๋ก ํ์ ๋ฉ๋๋ค. /admin/..
7๋ฒ์งธ ๋ฌธ์ ์ธ " orge " ๋ ์ ์ ํ์๋ " orc " ๋ฌธ์ ์ ์ ์ฌํฉ๋๋ค. " pw='{$_GET [pw]} " ์์ ์ฟผ๋ฆฌ๋ฌธ์ ์ฝ์ ํ์ฌ ์คํ๋๋ ํํ์ด์ง๋ง ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ ์ด ์กด์ฌํฉ๋๋ค. ๊ฒ์ฆ๊ตฌ๋ฌธ 1. ๊ธฐ์กด admin ๊ณ์ ์ด์ธ์ guest ๊ณ์ ์ด ์ถ๊ฐ์ ์ผ๋ก ์กด์ฌํจ 2. or , and ์ฐ์ฐ์๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ๊ฒ์ฆํ๊ณ ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํฌ์ธํธ ๋ถ๋ถ์ $query = "select pw from prob_orge where id='admin' and pw='{$_GET [pw]}'"; if(($result ['pw']) && ($result['pw'] == $_GET ['pw'])) solve("orge"); ์์ฒ๋ผ 'admin' ๊ณ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋๋ก ์ถ๊ฐ์ ์ผ๋ก ์ ์ธํด์ค์ผ ํ๋ฉฐ, ์ ๋ ฅ๋ p..
6๋ฒ์งธ ๋ฌธ์ " darkelf "์ ๋๋ค. ORC ๋ ๋ฒจ์์ ์๊ฐ์ด ์ข ์์๋์์ง๋ง ๊ทธ ์ดํ๋ฌธ์ ๋ ๊ธ๋ฐฉ ํด๊ฒฐ๋๋ ๋ฌธ์ ๋ค์ด ๋ง์ต๋๋ค.ํ์ฌ ์์ค๋ฅผํ์ธํด๋ณด๋ฉด ์ฟผ๋ฆฌ๋ฌธ์ ๋ฐ์ ์คํ๋๋ ์ฝ๋๋ " $_GET [pw] ์ ๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw$_GET [pw])) exit("No Hack ~_~"); if(preg_match('/or|and/i', $_GET[pw$_GET [pw])) exit("HeHe"); ๋ ๋ฒ์งธ ํํฐ๋ง ๊ฒ์ฆ์ ๋ณด์๋ฉด ๋ฌธ์์ด " or " ์ " and " ๊ตฌ๋ฌธ์ ๊ฒ์ฆํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ๋ฉ๋๋ค. if($result ['id']'admin') solve("darkelf"); ๋ํ ํด๋น๋ถ๋ถ์ ๋ณด์๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ..
wolfman ๋ฌธ์ ๋ฅผ ํ์ธํด๋ณด๋ฉด and pw='{$_GET [pw]} ํด๋น pw์ ์ฝ์ ๋ ๊ฐ์ผ๋ก ์คํ์ด ๋๊ณ ์์ต๋๋ค. ์กฐ๊ธ ํน์ดํ ์ ์ด ์๋ค๋ฉด ์ ๋จ๊ณ์์๋ " admin " ๊ณ์ ์ด ์ด๋ฏธ ์ ์ธ๋ ์ํ์์ ์งํํ์์ง๋ง ์ด๋ฒ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก " guest " ๊ณ์ ์ผ๋ก ์ ์ธ๋์ด ์์ต๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET [pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); ๊ฒ์ฆ๋๋ ํํฐ๋ง ํจ์๊ฐ ๋ ์ถ๊ฐ๋์์ต๋๋ค. ๋ ๋ฒ์งธ preg_match ์์ญ์ ๋ณด์๋ฉด " / / " ์ฆ ๊ณต๋ฐฑ ๊ฒ์ฆํ๊ณ ์๋๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค. if($result['id'] == 'ad..