반응형

소스보기만 있다.



<?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_tablesolve(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>



쿼리는 hidden_table로 부터 a가 val인 값을 가져오고 그값을 출력한다.

테이블명이 숨겨져있고 그테이블명이 answer로 보낸 값과 같으면 풀리는 문제이다.

select 과 by는 막혀있다.

일반적이 방법으론 union을 통한 select없이 테이블 이름을 알수있는 방법은 모르겠다.

검색해보는게 나을거같다...

쿼리문 뒤에 procedure analyse() 를입력하면 된다는데 한번해보자


webhacking.chall53_755fdeb36d873dfdeb2b34487d50a805.a



이렇게 나오는데 mysql 8.0에서는 이 기능이 삭제되었다고 한다.

db.table_name.column으로 구분되어 출력되며 우리가 필요한 테이블명은 가운데 있다.

이제 위 코드에 조건에 맞춰 페이로드를 짜보자

?answer=chall53_755fdeb36d873dfdeb2b34487d50a805 로 입력하면 성공!

반응형

'보안 > webhacking' 카테고리의 다른 글

webhacking.kr old-55  (0) 2019.12.08
webhacking.kr old-54  (0) 2019.12.08
webhacking.kr old-50  (0) 2019.12.07
webhacking.kr old-49  (0) 2019.12.07
webhakcing.kr old-48  (0) 2019.12.07
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기