20 ๋ฒ์งธ ๋ฌธ์ ์ธ "Dragon"์ ๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); ์ฟผ๋ฆฌ๋ฌธ์ ์ ๋ ฅ๋ฐ์ ์คํํ๊ฒ ํด์ฃผ๋ ๋ณ์๋ GET [pw]์ด๋ฉฐ ํํฐ๋งํ๊ณ ์๋ ๋ฌธ์์ด์ / _ . () ์๋์ ์ผ๋ก ์ ์ด์ ๊น๋ค๋ก์ ๋ณด์ด์ง ์์ต๋๋ค. $query = "select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'"; ์ ๋ ฅ๋๋ ์ฟผ๋ฆฌ ๋ฌธ์ ๋ณด๋ฉด id='guest'๋ก ์ง์ ๋์ด ์์ผ๋ฉฐ ๋ฐ๋ก ์์ "#(์ฃผ์)" ์ด ์๊ธฐ ๋๋ฌธ์ "pw" ๊ฐ์ ์ ๋ ฅ๋ ๊ตฌ๋ฌธ๋ค์ ๋ชจ๋ ๋ฌดํจ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค. if($result['id'] == 'admin') solve("dragon"); ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ..
์์ฒญ ๊น๋ค๋ก์ ๋ "xavis" ๋ฌธ์ ์ ๋๋ค. ์ฒ์ ๋ดค์ ๋๋ ๋ ๋ฒจ ๋์ด๋ ์น๊ณ ๋ ๋๋ฌด ์ฌ์ด ๋ฌธ์ ์ธ ๊ฑฐ ๊ฐ์์ ์ฌ์ด๊ฐ๋ ํ์์ธ ์ค ์์์ผ๋ ์ ๋ต์ด ์ ํ ๋์ค์ง๊ฐ ์์์ต๋๋ค. ์ฟผ๋ฆฌ๋ฌธ์ "์ฐธ"์ผ๋ก ๋ง๋ค์ด์ ํจ์ค์๋ ๊ธธ์ด๋ฅผ ์ ์ถํ์ฌ 12์๋ฆฌ์ธ๊ฒ์ ์์๋ด๊ณ ํ ๋๋ฐ๋ก burp suite๋ฅผ ํตํด ๊ฐ์ ํ๋์ฉ ๋์ ํด์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด๋ด๋ ค๊ณ ascii ์ฝ๋๋ฅผ ๋๋ ค๋ดค์ง๋ง ๋์ถ๋ ๊ฐ์ ์ ํ ์๊ณ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ ค ๋์ค์ ๋ฉ์ถ๊ฒ ๋์์ต๋๋ค. ๋ฌธ์ ์ ๊ทผ ๋ฐฉ์๋ถํฐ ์ถ์ ์์ ์๋๋ฅผ ๋ชจ๋ฅด๊ฒ ์ด์ ํํธ๋ฅด ๋ณด๋ฉด์ ์์ํ์ต๋๋ค. ํํธ 1. ํจ์ค์๋๊ฐ ์ซ์, ์ํ๋ฒณ, ํน์๋ฌธ์ ๊ฐ ์๋ 2. ascii ์ฝ๋๋ก ์ถ๋ ฅ์ํค์ง๋ง๊ณ "hex" ํํ๋ก ์ถ๋ ฅ์ํฌ๊ฒ 3. ์ถ๋ ฅ๋ "hex" ๊ฐ์ ์๋ฌธ ํํ๋ก decode ํ ๊ฒ Input Code ' or length..
18๋ฒ์งธ ๋ฌธ์ ์ธ "nightmare"์ ๋๋ค. if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); if(strlen($_GET[pw])>6) exit("No Hack ~_~"); "pw" ๋ณ์์๋ _ . () # - ๊ฐ์ ๊ธฐํธ๋ค์ ๊ฒ์ฆํ๊ณ ์์ต๋๋ค. ๋ํ GET [pw]>6์ฒ๋ผ ์ ๋ ฅ๊ฐ ๊ธธ์ด๋ฅผ ๊ฒ์ฆํ๊ณ ์๊ธฐ ๋๋ฌธ์ 6๊ธ์๋ฅผ ๋์ด๊ฐ๋ฉด No Hack์ด๋ผ๋ ํ์ด์ง๋ก ๋๊ธฐ๊ณ ์์ต๋๋ค. ๋ฌธ์ 1. ์ฐ์ ์ ๋ ฅ๊ฐ ๊ธธ์ด ์ ํ์ ๋ง์ถฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ์ ์ธ "์ฐธ" ๊ตฌ๋ฌธ์ธ or 1=1 ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ if($result['id']) solve("nightmare"); ์ฒ๋ผ admin ์ด ์๋ ์๋ฌด๋ฐ ๊ณ์ ์ผ๋ก ์ ๊ทผ..
17๋ฒ์งธ ๋ฌธ์ ์ธ "zombie_assassin"์ ๋๋ค. $_GET['id'] = strrev(addslashes($_GET['id'])); $_GET['pw'] = strrev(addslashes($_GET['pw'])); ์ ๋ ฅ๋ ๊ฐ์ ๋ฐ๋ ๋ณ์๋ "id"์ "pw"๊ฐ ์์ต๋๋ค. "addslashes" ํจ์์ ์ํด '(์ฑ๊ธ ์ฟผํฐ), "(๋๋ธ ์ฟผํฐ), \(์ญ ์ฌ๋์ฌ), null์ ์ ๋ ฅ๊ฐ์ --> "\"๋ฅผ ์ถ๊ฐํด์ค์ผ๋ก์จ ๋จ์ "๋ฌธ์์ด"๋ก ์ธ์ํ๊ฒ ๋ง๋ค์ด์ฃผ๊ณ ์์ผ๋ฉฐ "strrev" ํจ์๊ฐ ํฌํจ๋์ด ์์ด ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ์๋ค๋ก ๋ฐ๊ฟ๋ฒ๋ฆฌ๊ณ ์์ต๋๋ค/ if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/prob|_|..
15 ๋ฒ์งธ ๋ฌธ์ ์ธ "assassin"์ ๋๋ค. ํด๋น ๋ฌธ์ ์ ๊ฒฝ์ฐ "$_GET[pw]" ๋ผ๋ ๋ณ์์ ์ฟผ๋ฆฌ๋ฌธ์ ์ ๋ ฅ๋ฐ์ ์คํ๋๋ ํํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. if(preg_match('/\'/i', $_GET[pw])) exit("No Hack ~_~"); ์ ๋ ฅ๊ฐ์ ๊ฒ์ฆํ๋ ๋ถ๋ถ์ธ "preg_match" ํจ์๋ฅผ ๋ณด๋ฉด ์ฑ๊ธ์ฟผํฐ๋ฅผ ๊ฒ์ฆํ๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("assassin"); ์ด์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ ๋ ฅ๋ฐ์ pw์ ๊ฐ์ด "admin" ๊ณ์ ์ด์ด์ผ ํ๋ค๋๊ฒ ๊ฐ์ต๋๋ค. ์๋จ์ ์ฟผ๋ฆฌ๋ฌธ์ ๋ณด๋ฉด =(๋ฑํธ) ๋์ " like " ๊ตฌ๋ฌธ์ ์ฐ๊ณ ์๋ค์ *like๋ ..
14๋ฒ์งธ ๋ฌธ์ ์ธ " giant "์ ๋๋ค. if(strlen($_GET[shit])>1) exit("No Hack ~_~"); if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe"); ์ด๋ฒ์๋ id ๋ pw ๋ณ์๊ฐ ์๋ shit ์ด๋ผ๋๋ณ์๋ฅผ ์ฌ์ฉํด์ผ ๋๋ฉฐ ์ ๋ ฅ๋๋ ๊ฐ์ ๊ธธ์ด๋ 1๋ณด๋ค ๊ธธ๋ฉด " No Hack " ์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ๋์ฐ๊ณ ์์ต๋๋ค. ๋ํ |\n|\r|\t/ ๋ฑ ์ฌ๋ฌ ๊ณต๋ฐฑ ์ฐํ ๊ธฐ๋ฒ์ ์ฐจ๋จํ๊ณ ์๊ธฐ์ ํ์ฉ๊ฐ๋ฅํ ๊ณต๋ฐฑ ๊ตฌ๋ฌธ์ ์ฐพ์์ผ ํฉ๋๋ค. $query = "select 1234 from{$_GET[shit]}prob_giant where 1"; if($result[1234]) solve("giant"); ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํด์ ๊ฒฐ๊ด๊ฐ์ 1234 ๊ฐ ์ถ๋ ฅ..
13๋ฒ์งธ ๋ฌธ์ ์ธ " bugbear "์ ๋๋ค. bugbear์ ๊ฒฝ์ฐ ๊ฒ์ฆํ๋ ํค์๋๊ฐ ๋ง์ด ๋์ด๋ ์ฐํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํด์ผ ๋ฉ๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); if(preg_match('/\'|substr|ascii|=|or|and| |like|0x/i', $_GET[no])) exit("HeHe"); ์๋กญ๊ฒ ๊ฒ์ฆํ๋ ํํฐ๋ง์ or ๊ตฌ๋ฌธ ๋์ ์ฌ์ฉ๋์๋ " like " ๋ฅผ ๊ฒ์ฆํ๊ณ hex ์ฝ๋ ์คํ ๋ฐฉ์ง๋ฅผ ์ํด "0x"๊น์ง ๊ฒ์ฆํ๊ณ ์์ต๋๋ค. ๋ํ " ascii " ์ฝ๋์ฌ์ฉํ๋๊ฒ๊น์ง ๋ง๊ณ ์๊ธฐ์ " ord " ๋ฅผ..