티스토리 뷰

초기 페이지이다. upload error라는 메시지가 출력되어 있고 hint로 어떤 링크가 주어져 있다.







코드에서 얻을 수 있는 힌트는 없는 것 같다. 일단 저 링크로 이동해본다.








mysql_connect() : MYSQL 서버에 접속하는 함수

mysql_select_db() : MYSQL 데이터 베이스를 선택하는 함수

mysql_query() : MYSQL  질의문(query)를 전달하는 함수

mysql_fetch_array() : 한 행에서 데이터를 읽는 함수



$data변수의 값이 존재하는 경우(어떤 값이든 상관없음) 패스워드가 담긴 메시지가 출력된다.







일단 위와 같은 파일을 업로드 해보았다.

Done이라고 뜨면서 잘 업로드 된다.









업로드한 후 upload/업로드한 파일명

으로 이동하면 위와 같이 그 내용이 출력된다.

딱히 정답과 관련있지는 않다.









php파일을 전송하여 쿼리문을 조작할 수도 있다.

시험삼아 임의의 php 구문이 담긴 php파일을 업로드 해보았다.

Done이 뜨면서 업로드가 된다.







upload/4.php로 이동하면

php 구문이 실행되지는 않고 코드가 출력이 되는데,

"<?", "?>" ,"()" 등 여러 문자가 제거되어진다.

즉, php파일의 업로드는 가능하나, php구문이 실행되지는 않는다.


해결방법이 떠오르지 않아 검색을 해봤는데, ".htaccess" 관련 문제라고 한다.









Burp Suite를 이용해서 파일이름을 .htaccess로 바꾼후 업로드하면 위와 같은 에러가 뜬다.

서버측 오류로 지금은 막힌문제이다.





그래도 풀이를 적어보기로 했다.



보통 mysql_connect함수는

mysql_connect("server", "username", "password")와 같이 3개의 인자를 넣게 되는데,

이 문제에서는 인자가 하나도 지정되어 있지 않다.

이러한 경우에는 보통 웹 서버 환경설정 파일("php.ini")에서 설정되어 있는데로 인자가 지정된다고 한다.


파일을 업로드했을때 암호가 담긴 메시지가 출력되지 않는 것은

php.ini에 설정되어 있는 서버에 "challenge_30_table"이라는 DB가 없거나, 이 DB에 "challenge_30_answer"라는 테이블이 없거나, 이 테이블에 "password" 라는 항목이 없다는 것을 의미한다.



따라서, 내 pc에 "challenge_30_table"라는 DB를 만들고

이 DB에 "select password from challenge_30_answer"의 값이 존재하도록 구성한 후


".htaccess"파일을 이용하여 php.ini에 설정된 주소의 DB가 아닌 내 pc의 DB에 접속(접근)할 수 있도록 한다면

$data 변수의 값이 존재하게 되어지므로 패스워드를 알아낼 수 있다.




DB는 구축해 놓았다고 가정하겠다(나중에 작성할 예정)




".htaccess"파일의 내용은 아래와 작성하면된다.


php_value mysql.default_host "내 외부 IP"

php_value mysql.default_user "내 계정(아이디)"

php_value mysql.default_password "내 계정 패스워드"


위와 같은 조작을 통해

mysql_connect()호출시 내 pc의 DB로 접속할 수 있게 된다.


 

위 내용이 담긴 ".htaccess" 파일을 업로드한 후

upload/index.php로 접속하면 패스워드가 담긴 메시지가 출력되고, 이 패스워드를 입력하면 문제가 클리어 된다.

(주의할점은, "index"라는 단어가 포함된 파일명은 업로드 안되고 No라고 뜬다.)







+

이 사진에서 볼 수 있듯이 mysql_connect()함수를 사용하여 "내 외부 ip"를 통해 내  pc의 DB에 접근할때 기본적으로 3306 포트를 사용한다.



따라서, 포트포워딩을 이용하여 

외부ip:3306으로 접속하면 내부ip:3306 으로 연결되도록 설정하여야 한다.

















































'hacking > webhacking.kr' 카테고리의 다른 글

<webhacking.kr> - 44번  (0) 2018.03.01
<webhacking.kr> - 48번  (0) 2018.03.01
<webhacking.kr> - 37번  (0) 2018.02.28
<webhacking.kr> - 34번  (0) 2018.02.15
<webhacking.kr> - 28번  (0) 2018.02.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함