wargame/LOS

[LOS]5번 WOLFMAN

dndkdkdk 2019. 7. 12. 18:50

WOLFMAN


5번 문제

<?php 
  include "./config.php"; 
  login_chk(); 
  dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); // $_GET[pw]의 공백 필터링

  $query = "select id from prob_wolfman 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>"; // $result의 id가 존재한다면 Hello $result['id'] 출력
  if($result['id'] == 'admin') solve("wolfman"); // $result의 id가 admin이면 문제 해결

  highlight_file(__FILE__); 
?>



문제는 이전의 문제와 별 다를게 없지만 공백이 필터링 된다는 점이 다르다. 우선 공백 대신 %20 을 넣고 해보았다.

역시 실패.

그렇다면 다른 url escape code를 사용해보자. %0a (LINE FEED = new line)를 사용해보자.

성공!

그 외에 다른 것도 되는지 확인해보았다.
%09 (TAB) - 성공
주석 - 성공
+ - 실패 (white space로 인식한다)