#WarGame/Lord of SQLInjection (19) 썸네일형 리스트형 Lord of SQLInjection 3번 goblin https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr Lord of SQLInjection 3번 goblin if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 2번문제에서 필터링이 더 추가되었다. prob _ . () ' " ` 이번문제에서는 싱글쿼터와 더블쿼터를 사용할 수 없으며 no는 숫자만 입력이 가능하다. if($result['id'] == 'admin') solve("goblin"); id가 admin이면 문제가 해결된다. 하지만 현재 id는 guest로 나와있다.. Lord of SQLInjection 2번 cobolt https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr Lord of SQLInjection 2번 cobolt - $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 1번 문제와 필터링은 같지만 pw는 md5로 암호화를 한다. - if($result['id'] == 'admin') solve("cobolt"); id가 admin이면 조건이 만족하므로 admin 뒤에 주석처리를 하면 해결할 수 있다. ?id=admin%27%23 id='admin'#'을 적게 되면 pw는 주석처리가 되어 검증을 하지 않기 때문에 결국 참이 된다. 또 다른 방법은 or문이다.. Lord of SQLInjection 1번 gremlin https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr Lord of SQLInjection 1번 gremlin 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 ~_~"); preg_match 함수 : php에서 정규표현식 패턴이 일치하는지 검색하여 반환하는 함수 첫번째 인수= 필터링, 두번째 인수= 검색 대상 문자열 id와 pw 둘다 같은 조건으로 필터링이 되어있다. 필터링 => prob .. 이전 1 2 3 다음