목록web/LOS (17)
Tyojong
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("zombie_assassin"); highlight_file(__FILE__); ?> 문제 목표if($result['id']) solve("zombie_assassin"); id가 출력되면 문제가 해결된다. $_GET['id'] = strrev(addslashes($_GET['id']));$_GET['pw'] = strrev(addslashes($_GET['pw']));id와 pw에서 입력받은 문자열은 addslashes함수와 strrev함수를 거친다.addslashes함수는 ' " \ null 앞에 \를 붙여 문자..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("succubus"); highlight_file(__FILE__); ?> 문제 목표if($result['id']) solve("succubus");id를 출력하면 문제가 해결된다. if(preg_match('/\'/',$_GET[id])) exit("HeHe");if(preg_match('/\'/',$_GET[pw])) exit("HeHe");id와 pw로 입력된 작은 따옴표는 필터링된다. 문제 해결sql injection을 하기 위해서는 따옴표를 활용해 기존 비교 구문을 탈출시켜야 하지만 필터링 되기 때문에 다른 ..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("assassin"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("assassin"); id가 admin이 출력되면 해결된다. if(preg_match('/\'/i', $_GET[pw])) exit("No Hack ~_~");pw로 들어온 입력값에 ' 가 있으면 필터링된다. 문제 해결$query = "select id from pro..
1) exit("No Hack ~_~"); if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe"); $query = "select 1234 from{$_GET[shit]}prob_giant where 1"; echo "query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result[1234]) solve("giant"); highlight_file(__FILE__); ?> 문제 목표if($result[1234]) solve("giant");1234를 출력하면 문제가 해결된다. if(strlen($_GET[shit])>1) exit("No Hack..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_bugbear where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("bugbear"); highlight_file(__..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_darkknight where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight"); highlight_f..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); highlight_file(__FILE..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("skeleton"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("skeleton");id가 admin이면 해결된다.$query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0";조회 되는 쿼리 뒷 부분을 보면 and 1=0 이 추가로 붙어있다. 하지만 별다른 필터링이 없기 때문에 그냥 뒷부분을 주석처리하면 된다. 문제 해결?p..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("vampire"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("vampire");id가 admin이면 해결된다.$_GET[id] = strtolower($_GET[id]);$_GET[id] = str_replace("admin","",$_GET[id]);입력받은 id를 모두 소문자로 바꾸고 admin이라는 문자열은 공백으로 바꿔 필터링한다. 문제 해결admin문자열을 공백으로 치환 시 한번의 과정만 진행한다.?id=..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("troll"); highlight_file(__FILE__);?> 문제 목표if($result['id'] == 'admin') solve("troll");id가 admin이면 해결된다.if(preg_match("/admin/", $_GET[id])) exit("HeHe");admin문자열을 필터링하고 있다. 문제 해결sql에서는 대•소문자를 구분하지 않는다.admin문자열을 필터링하고 있는 정규표현식을 보면 admin이라는 소문자로만 이루어진 문자열만 검증하고 있다.이런식으로 id에 대문자를 섞어 작성..