반응형

https://los.rubiya.kr

 

troll

 

문제 소스:

 

1
2
3
4
5
6
7
8
9
10
11
12
<?php  
  include "./config.php"
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/\'/i'$_GET[id])) exit("No Hack ~_~");
  if(preg_match("/admin/"$_GET[id])) exit("HeHe");
  $query = "select id from prob_troll 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("troll");
  highlight_file(__FILE__);
?>
cs

 

$_GET[id]

 

이번에는 id만 입력을 받는다.

 

 

 

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

 

' 따옴표와 admin을 필터링 한다.

 

 

if($result['id'] == 'admin') solve("troll");

id는 admin이어야 한다.

 

 

 

 

 

 

 

필터링 하는 구문을 잘 보자.

 

preg_match("/admin/"$_GET[id])

/admin/

 

/admin/i 가 아니다. 뒤에 i가 붙지 않아서 대소문자 구분을 하게 된다.

따라서, 소문자로 admin만 필터링을 한다.

 

mysql은 기본적으로 대소문자 구분을 하지 않기 때문에, ADMIN으로 입력하여도 무방하게 된다.

 

 

 

 

 

id에 ADMIN으로 입력하자.

반응형

+ Recent posts