목록web/LOS (17)
Tyojong
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_orge where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); highlight_file(__FILE__..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("darkelf"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("darkelf"); id가 admin이면 해결되지만if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");or과 and 문자열이 필터링된다. 문제 해결or 대신 || 를 사용하면 필터링을 우회할 수 있다. (sql injection ..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("wolfman");id가 admin이면 문제가 해결된다.if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~");공백이 필터링된다. 공백 필터링을 우회할 수 있는 방법은 많다. (우회 방법은 다른 블로그들이 더 잘 정리되..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello admin"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); highlight_file(__FILE__); ?> 문제 목..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("goblin"); highlight_file(__FILE__); ?> 문제 목표if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");따옴표는 작성이 불가능하고if($result['id'] == 'admin') solve("goblin");id가 admin이 출력되면 해결된다. 문제 해결따옴표를 사용할 수 없기 때문에 일반적인 문자열은 바로 사용할 수 없다...
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("cobolt"); elseif($result['id']) echo "Hello {$result['id']}You are not admin :("; highlight_file(__FILE__); ?> 문제 목표if($result['id'] == 'admin') solve("cobolt");출력된 id가 admin이면 문제가 해결된다. 문제 해결id가 admin인 유저의 id를 출력하기 위해?id=admin' --+ 를 입력하면 해결된다.select id from prob_cobolt where i..
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("gremlin"); highlight_file(__FILE__);?>입문자를 위해 Lord of SQL Injection에서 앞으로 기본적으로 사용되는 코드만 살펴보자. (php 코드는 알면 좋다.) if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");preg_match 함수를 이용해 정규표현식에 해당하는 문자열을 필터링한다. (해당 문제에서는 다른 문제에 영향을 줄 문자열들만 필터링 하고 있다.)$query = "select id from prob_gr..