WARGAME/Lord of sql injection

LORD OF SQL INJECTION VAMPIRE 풀이

msh1307 2022. 5. 17. 20:46

소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
<?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

풀이 


따옴표 '를 사용할 수 없다. 때문에 따옴표를 닫고 나가줄 수 없다.

여기서 id를 소문자로 변환해서 admin과 비교를 해줘서 ADMIN으로도 우회할 수 없다. 

str_replace가 admin을 찾아서 한번 없애기 때문에, adadminmin을 입력해서 최종적으로는 admin을 넘겨줄 수 있다.