반응형

https://los.rubiya.kr

VAMPIRE

 

문제 소스:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
http://www.wechall.net
<?php 
  include "./config.php"
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/\'/i'$_GET[id])) exit("No Hack ~_~");
  $_GET[id] = strtolower($_GET[id]);
  $_GET[id] = str_replace("admin","",$_GET[id]); 
  $query = "select id from prob_vampire where id='{$_GET[id]}'"
  echo "<hr>query : <strong>{$query}</strong><hr><br>"
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'== 'admin') solve("vampire"); 
  highlight_file(__FILE__); 
?>
cs

  if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
  $_GET[id] = strtolower($_GET[id]);
  $_GET[id] = str_replace("admin","",$_GET[id]); 

 

따옴표가 발견되었을 때에는 exit을 통해 코드를 종료시켜버리지만,

 

"admin"이 발견되었다고 코드를 종료시키지는 않고, 해당 문자열을 ""로 치환시킨다.

(이전 문제 풀이 방식으로 대문자로 ADMIN을 입력하는 경우 strtolower함수에 의해 소문자로 치환되기 때문에, 사용할 수 없다.)

 

 

 

그러면 입력을 12admin345 로 하면 admin이 치환되어 12345가 남게된다. 이를 이용해서

 

adadminmin을 입력하면 admin이 치환되어 admin이 남고, 조건문을 통과할 수 있다.

 

 

 

 

id에 adadminmin을 입력하면 된다.

반응형

+ Recent posts