[webhacking.kr] 53번 문제 풀이[Procedure analyse]

최대 1 분 소요

💡 Webhacking.kr challenge(old) 53번 문제에 대한 풀이입니다.

문제

<?php
  $db = dbconnect();
  include "./tablename.php";
  if($_GET['answer'] == $hidden_table) solve(53);
  if(preg_match("/select|by/i",$_GET['val'])) exit("no hack");
  $result = mysqli_fetch_array(mysqli_query($db,"select a from $hidden_table where a={$_GET['val']}"));
  echo($result[0]);
?>

$hidden_table을 알아내는 문제입니다.

procedure analyse()

이번 문제는 procedure analyse() 함수를 이용하는 문제입니다. 저는 사전에 해당 함수를 알고 있었기 떄문에 바로 이용해서 풀었습니다. 하지만 해당 함수는 mysql 8.0버전이 되면서 사라졌기 때문에 제 로컬 db에서는 테스트를 못해봤습니다.

image

mysql 8.0이 2018년에 나왔으니 사라진지는 꽤 되었는데 문제가 오래되었다 보니 있는 문제 같습니다.

mysql의 버전에 대한 정보는 링크에서 읽어보시면 됩니다.

바로 문제를 풀어보겠습니다.

  ?val=1 procedure analyse()

image

차례대로 DB명.테이블명.컬럼명 이렇게 구성되어 출력됩니다. 따라서 테이블 명은 chall53_755fdeb36d873dfdeb2b34487d50a805입니다.

image

댓글남기기