47단계의 초기화면 주석처리되어 잇는 index.phps가 힌트인 것 같다. index.phps로 들어가면 소스코드가 나온다. POST방식으로 전달받은 "email"이 존재하는 경우 if안의 내용이 실행되도록 구성되어 있다. mail()함수는 이메일을 보내는 함수이다. mail(받는 사람 주소, 제목, 내용, 이메일 헤더(참조)) 위 코드는 email의 값을 POST방식으로 전달하면 받는이 : admin@webhacking.kr 제목 : readme 내용 : password is $pass 헤더(참조) : From : [폼에 입력한 문자열] 와 같은 이메일을 보내게 된다. 이 이메일에는 password정보가 담겨있다. 그러나 이 메일을 받는사람은 admin@webhacking.kr 뿐이므로 나는 내용을 ..
38번 문제는 log injection 문제이다. 코드를 보면 admin.php라는 문장이 주석처리되있다. 이게 힌트같다. admin.php로 들어가니 ip:문자열이 출력되어 있다. 코드를 보니까 admin이 힌트라고 써져있다. 첫 페이지로 돌아와 admin을 입력하였다. you are not admin이라는 메시지가 출력된다. admin이라는 단어가 필터링처리 되어있다. admin이 아닌 단어를 입력했을때는 로그에 자신의 Ip:입력한단어 와 같이 쓰여진다. 이곳에 자신의IP:admin이 기록되도록 해야 문제가 풀리는 것같다. 개행문자 \n을 이용하면된다. [임의의 단어]\n[자신의 IP주소]:admin 를 입력하고 login버튼을 클릭하면 [내 IP]:[임의의 단어] [내 IP]:admin 와 같이 기..
26번 문제를 클릭하면 다음과 같은 화면이 나타난다. index.phps를 클릭하면 코드를 볼 수 있다. GET방식으로 id라는 변수를 받는다 . 1. 변수 id의 값이 "admin"이 포함된 문자열일 경우 "no!"가 출력되고 종료됨 2. 변수 id의 값이 "admin"을 포함하지 않으면서, id를 URL디코딩 한 값이 "admin"일 경우 문제가 풀린다. GET방식이므로 변수를 전달할때, (현재 URL)?id=(전달할 값)을 주소창에 입력하면 되고 역시나 id=admin을 전달하면 no!라고 뜬다. 문제를 해결하려면 id=("admin"을 URL인코딩한 결과)를 전달해주어야 한다. URL인/디코딩을 지원해주는 사이트는 굉장히 많다. "admin"이라는 영어는 인코딩해도 같은 결과가 나오기 때문에 AS..