Webhacking.kr 41번 문제를 풀어보자


41번 문제 클릭~



파일 업로드 할 수 있는 화면이 보인다



일단 소스 를 봐보자



index.phps 페이지가 존재하나 보다


index.phps 페이지를 보자


그럼 아래와 같이 Filename에서 몇가지 필터링하고 임시 디렉터리에 있는 File을 hidden_dir에 copy 함수를 이용하여


복사한다


그 다음 hidden_dir/File 에 password를 적어 준다



그럼 이 문제를 어떻게 풀어야 할까~~


일단 hidden_dir 을 알아내야 할 거같은뎅...


copy($cp,"$hidden_dir/$fn");


여기서 사실 몰랐는뎅


에러를 발생시켜 에러 메시지에서 확인 가능했다


일단 fn에 아무값도 넣지 않으려고 빈칸을 upload 하였지만 no라는 결과가 나왔고



replace 되는 ' . ' 을 upload 하였지만 역시 no라는 결과가 나왔다



잘 보니 $fn에 값이 없으면 eregi 에서 $fn 값이 없어서 no라는 결과가 출력되는거 같다


그래서 eregi 다음에 replace 되는 < 이거나 > 이것을 넣어 보았다


그랬더니 아래와 같이 copy 함수가 에러 메시지를 보여주고있다


copy 함수 에러 메시지에 hidden_dir의 위치가 노출되어있었다



hidden_dir의 위치를 알아냈으니


이제 정상적으로 파일 하나를 업로드 하자




그리고 hidden_dir/Filename 으로 이동하면


아래와 같이 41번 문제 인증 값이 나온다



이제 그 인증 값을 Auth에 입력하면



41번 문제는 클리어 된다~