전체 글 (295) 썸네일형 리스트형 LORD OF SQLINJECTION : evil_wizard Write-Up if(preg_match('/prob|_|\.|proc|union|sleep|benchmark/i', $_GET[order])) exit("No Hack ~_~"); $query = "select id,email,score from prob_evil_wizard where 1 order by {$_GET[order]}"; // same with hell_fire? really? echo "idemailscore"; $rows = mysqli_query($db,$query); while(($result = mysqli_fetch_array($rows))){ if($result['id'] == "admin") $result['email'] = "**************"; echo "{$r.. LORD OF SQLINJECTION : hell_fire Write-Up if(preg_match('/prob|_|\.|proc|union/i', $_GET[order])) exit("No Hack ~_~"); $query = "select id,email,score from prob_hell_fire where 1 order by {$_GET[order]}"; echo "idemailscore"; $rows = mysqli_query($db,$query); while(($result = mysqli_fetch_array($rows))){ if($result['id'] == "admin") $result['email'] = "**************"; echo "{$result[id]}{$result[email]}{$result[score]}"; } ech.. LORD OF SQLINJECTION : dark_eyes Write-Up if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/col|if|case|when|sleep|benchmark/i', $_GET[pw])) exit("HeHe"); $query = "select id from prob_dark_eyes where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(mysqli_error($db)) exit(); echo "query : {$query} "; $_GET[pw] = addslashes($_GET[pw]); $query = "sele.. Webhacking.kr : old-35 Write-Up phone : Webhacking.kr : old-53 Write-Up Webhacking.kr : old-55 Write-Up 문제에 접근하면 초록 몬스터가 등장하며, 마우스에 따라 움직인다. 해당 게임이 Game Over 가 되면 alert()가 발생하고, form 데이터가 전송이 되는 것을 볼 수 있는데, 나의 score 값이 POST request 되는 것을 볼 수 있다. ( 아래와 같이 Game Over가 되도록 js 코드를 조작하였다. ) if(1) {alert('GAME OVER'); sfrm.submit(); } rank.php에 접속해 보자! 여기서는 score에 따른 ranking 점수를 볼 수 있다. 위 그림 2에서 score에 점수를 넣어 전송하면 rank DB에 반영이 된다. 그 이유는 아래 mysql_query에서 확인할 수 있다. ( 내가 입력 한 score=33을 rank page에서 .. LORD OF SQLINJECTION : iron_golem Write-Up if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/sleep|benchmark/i', $_GET[pw])) exit("HeHe"); $query = "select id from prob_iron_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(mysqli_error($db)) exit(mysqli_error($db)); echo "query : {$query} "; $_GET[pw] = addslashes($_GET[pw]); $query = "sel.. LORD OF SQLINJECTION : dragon Write-Up if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); $query = "select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'"; echo "query : {$query} "; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("dragon"); 해당 challenge에 해당하는 필터링 조건 및 pass 조건은 위와 같다. 눈에 띄는 점은 query에 #이 들어가 있.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 37 다음