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 ์ด ์๋ ์๋ฌด๋ฐ ๊ณ์ ์ผ๋ก ์ ๊ทผ..
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 ๊ฐ ์ถ๋ ฅ..
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"); ๋ํ ..
preg_match ํจ์์ ์ ์ธ๋์ด ์๋ ํํฐ๋ง ํญ๋ชฉ๋ค์ ๋ณด๋ฉด ์ ๋จ๊ณ์ ํฌ๊ฒ ์ฐจ์ด ์์ด ๋ณด์ ๋๋ค. ํ์ง๋ง pw=์ md5('')๊ฐ ์ ์ธ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ ๋จ๊ณ ๋ ๋ฒจ์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ฟผ๋ฆฌ๋ฌธ์ ์ฝ์ ํด๋ณด๋ฉด md5('') ๊ฐ ๋๋ถ์ ๊ตฌ๋ฌธ์ด ์ฑ๊ณตํ์ง ์๊ณ ์์ต๋๋ค. ๊ดํธ ๊ตฌ๋ถ์ด ๋ช ํํ์ง ์์์ค ์๊ณ ๊ดํธ๋ก ๊ตฌ๋ถํด ๋ดค์ง๋ง rubiya๋ฅผ ํ์ํ๋ค๋ ๋ฌธ๊ตฌ๊ฐ ๋์ค๊ณ ์ฑ๊ณต๋์๋ค๋ ๋ฌธ๊ตฌ๋ ๋์ค์ง ์์ต๋๋ค. ์์ค ๋ถ๋ถ์ ์ ๋๋ก ํ์ธํด๋ณด๋ [ id ] == admin์ผ๋ก ๋ ๊ฒ์ผ๋ก ๋ณด์ ์ ๋ ฅ๋๋ id๋ "admin" ์ด์ฌ์ผ ๋๋ค๋ ๊ฒ์ ๋ค๋ฆ๊ฒ ๊นจ๋ฌ์์ต๋๋ค. ๋ํ ์ ์ ๋ ฅ๋๋ ์ฟผ๋ฆฌ๋ฌธ์ md5('') ๊ฐ ์๋์ง ์๊ฐํด๋ด๋ ์กด์ฌ์ ์๋ฏธ๋ฅผ ์ ์๊ฐ ์์์ง๋ง ๋จ์ ๋ฌธ์ ํด๊ฒฐ์ ๋ง๊ธฐ ์ํ ๋ํ์ค ๊ฐ์ ์ญํ ๋ก ..
์ฒซ ๋ฒ์งธ ๋จ๊ณ์ธ gremlin์์ preg_match ํจ์๋ฅผ ๋ณด๋ฉด ๋ณ๋ค๋ฅธ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ์ ํ์ง ์๊ณ ID์ PW ๋ถ๋ถ์ ์ฟผ๋ฆฌ๊ฐ ๋ฐ๋ก ์ฝ์ ๋๊ณ ์๊ธฐ์ ์ฝ์ ๋๋ ์ฟผ๋ฆฌ๋ฌธ์ด " ์ฐธ " ๊ฐ์ ๊ฐ์ง๋๋ก " or " ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ ์์ฑํด์ฃผ์๋ฉด ์ฝ๊ฒ ํต๊ณผ๋ฉ๋๋ค. preg_match ํจ์์ ์ง์ ํด๋ ,/(\) ๋ฑ ์ด ์ ๋ ฅ๋ ๊ฒฝ์ฐ " No Hack "์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ๋์ฐ๋ฉฐ ์คํจํ๊ณ ์์ผ๋ ํด๋น ๋ฌธ๊ตฌ๋ ํผํด์ ์์ฑํ๋ฉด ๋๊ฒ ์ต๋๋ค. if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database! if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exi..