Webhacking.kr 30번 문제 풀이~


30번 문제 550점 짜리인데


어떤 문제일까~~


30번 문제 클릭



힌트가 나오고 또 업로드 화면이 나온다



그냥 힌트를 클릭하면 내부 서버 에러가 나올 때가 있다



이럴 때는 .htaccess 파일을 한 번 업로드 한 후에 다시 클릭해 보자


업로드 된 .htaccess 파일에 문제가 있어서 Internal Server Error이 뜨는거 같다



upload/index.phps를 보면



mysql과 연결하여 select password from challenge_30_answer 라는 쿼리에 결과가 있다면


문제가 해결되는거 같다


일단 upload/index.php 파일을 보았다



아무~것도 나타나지 않았다


저 upload/index.phps에서 mysql을 해결해야하나 보다


일반적은 DB연결 같은데 저걸로 뭘 어케하라는 건지..


내가 webhacking.kr DB서버에 접근할 수도 없는거고...


생각해보니 아까 문제에서 .htaccess 파일을 업로드 하여


DB를 webhacking.kr의 DB가 아니고 내 쪽 DB로 접근하도록 설정한다


만든 DB에는 위 소스에서 필요한 정보만 넣어서 만들었다


Kali 리눅스에서 Mysql 설정을 해보았다


일단 외부 접근 하기 위한 설정


vim /etc/mysql/my.cnf



47 라인에 주소를 127.0.0.1 에서 자신의 IP로 변경



service mysql restart



혹시 모르니 apache 시작하자




이제 MYSQL 설정을 해야하는데


mysql 루트 패스워드 변경이 필요한 경우


https://www.linux.co.kr/database/mysql/root-passwd-change.htm


mysql 원격 접속 허용 변경


http://zetawiki.com/wiki/MySQL%EC%97%90_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9



요런 식으로 외부에서 접근을 허용시켜 주고


위의 upload/index.phps 페이지에서의 소스처럼 DB와 테이블 그리고 password 값을 넣어준다


(문제 풀이에 필요한 DB 생성)


(외부에서 DB 접근 허용 설정)


DB 설정은 잘 해보길 바란당..


DB 설정이 끝났으면 


아래와 같이 .htaccess 파일을 업로드 한다


여기서


php_value mysql.default_host "외부 IP"

php_value mysql.default_user "root(아이디)"

php_value mysql.default_password "mysql(패스워드)"


를 사용 한다


http://php.net/manual/kr/function.mysql-connect.php

(참조)



업로드를 성공적으로 완료하고



upload/index.php 로 이동하면 아래와 같이 패스워드가 나온다



이제 이 패스워드를 Auth 페이지에 입력하면~



30번 문제 클리어~




공유기를 사용중이라 위와 같이 포트포워딩을 설정했다