Post

Webhacking.kr - web53

web53

1
2
3
4
5
6
7
8
<?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]);
?>

Solution

1
2
3
4
5
6
7
8
9
10
뒤에서부터 풀다보니 55번을 못풀어서 풀이를 보다가 간접 풀이를 보게 됨.
이 문제또한 procedure analyse를 이용해서 풀 수 있다고 함.

procedure analyse()는 select, information 등등 쿼리의 필드명, 컬럼명 등을 알아내기 어려울 때
돌파구로 사용할 수 있는 함수인 듯함.

현재 hidden_table에서 값을 가져오므로 현재 테이블이 뭔지 확인해보면 됨.
?val=1 procedure analyse() -> webhacking.chall53_755fdeb36d873dfdeb2b34487d50a805.a

현재 테이블은 chall53_755fdeb36d873dfdeb2b34487d50a805
This post is licensed under CC BY 4.0 by the author.