반응형
문제
<?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() 함수를 통해 테이블명을 알아낼 수 있다.
limit 이용해서 더 정확하게 볼 수 있다.
DB명은 webhacking, 테이블명은 chall53_755fdeb36d873dfdeb2b34487d50a805, 컬럼명은 a임을 알 수 있다.
반응형
'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 |