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..
Lord of Sql injection์์ " orc " ๋ ๋ฒจ์ ๊ฒฝ์ฐ ์ ๋จ๊ณ์์ ์งํํ๋ ๋ฐฉ์๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ ์งํํด์ผ ๋ฉ๋๋ค. ์ฐ์ pw=' {$_GET[pw]}'"; ์ ๋ณด๋ค์ํผ ์ฟผ๋ฆฌ๋ฌธ์ ์ฝ์ ํ ๋ณ์์ ์ข ๋ฅ๋ ํ ๊ฐ์ด๋ฉฐ id='admin'์ด๋ผ๊ณ ์ ์ธ์ด ๋์ด์๋ ์ํ์ ๋๋ค. if(($result ['pw']) && ($result['pw'] == $_GET ['pw'])) solve("orc"); ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์์ค์์ ํ์ธ๋๋ ๊ฒ์ฒ๋ผ $_GET ๋ฐฉ์์ผ๋ก ๋ ๊ฒจ ๋ฐ์ pw ๊ฐ๊ณผ admin์ ์ค์ pw ๊ฐ๊ณผ ๋์ผํด์ผ ๋ฌธ์ ํด๊ฒฐ์ด ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. $_GET [pw] = addslashes($_GET [pw]); ๋ํ "addlslashes" ํจ์์ ์ํด ์ฑ๊ธ ์ฟผํฐ์ ๋ํ ์กฐ์น๋ฅผ ํด๋ ๊ฒ ๊ฐ์..
$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; goblin ๊ฐ์ ๊ฒฝ์ฐ ์ ๊ณผ๋ ๋ค๋ฅธ ๊ฒ no={$_GET [no]} ์์ญ์ ์ฟผ๋ฆฌ๋ฌธ์ ์ฝ์ ํ์ฌ admin ๊ณ์ ์ผ๋ก ์ ๊ทผํด์ผ ๋ฉ๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); ๋ํ preg_match์ ์์ญ์ด ํ๋ ๋ ์ถ๊ฐ๋๋ฉด์ ์ฑ๊ธ ์ฟผํฐ(')์ ๋๋ธ์ฟผํฐ(") ๊ณผ ์กด์ฌํ ๊ฒฝ์ฐ " No Quotes " ํ์ด์ง๋ก ๋๊น์ผ๋ก์จ ํํฐ๋ง ์์ญ์ด ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ฑ๊ธ ์ฟผํฐ๋ฅผ "..