728x90
반응형

query : select id from prob_troll where id=''

 

 

<?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__);

?>

 

 

코드 해석

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으로 대입될 경우 문제 해결

 

 

문제 해결

1. Mysql, MariaDB는 대소문자를 구별하지 않음

2. 해당 문제는 admin이라는 문자만 필터링

3. Admin등의 대문자가 조합된 문자는 injection 됨

 

GET 방식으로 URL에 SQL 대입 (?id=Admin)

  • query : select id from prob_troll where id='Admin'
728x90

'*Wargame > [ LS ] Load of SQL Injection' 카테고리의 다른 글

[ LS - 10 ] skeleton  (0) 2021.12.20
[ LS - 09 ] vampire  (0) 2021.12.18
[ LS - 07 ] orge  (0) 2021.12.18
[ LS - 06 ] darklef  (0) 2021.12.18
[ LS - 05 ] wolfman  (0) 2021.12.18

+ Recent posts