[Level 07]Lord of SQL injection – orge

Lord of SQL injection – orge

Level 07


Source Code

<?php 
  include "../config.php"; 
  login_chk(); 
  dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); 
  $query = "select id from prob_orge 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>"; 
   
  $_GET[pw] = addslashes($_GET[pw]); 
  $query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'"; 
  $result = @mysql_fetch_array(mysql_query($query)); 
  if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); 
  highlight_file(__FILE__); 
?>

Analyse

http://los.sandbox.cash/orge-~~.php?pw=123 이라고 입력하게 되면
select id from prob_orge where id='guest' and pw='123' 과 같이 MySQL 쿼리문이 입력된다.
그리고 6번째 줄에서 ‘or’와 ‘and’를 필터링 하고 있고 10번째 줄에서 쿼리가 참이라면 ‘Hello (id)’를 보여준다.
마지막으로 15번째 줄에서 &result['pw']에 admin의 pw가 들어가야 orge문제가 풀린다.

Frist Hint is next page

카테고리LOS

글의 문제가 있다면 댓글을 달아 주세요.

This site uses Akismet to reduce spam. Learn how your comment data is processed.