webhacking.kr challenge 25
첫 화면이 위와 같이 나온다. 리눅스에서 많이 보던 화면이다. password.php라는 파일을 읽어 알아내는 것이 문제를 푸는 방법인 것 같다. 소스페이지를 확인했다. 딱히 도움이 될 만한 내용은 없었다. 화면을 잘 살펴보니 url창이 눈에 들어왔다.
마지막 부분에 써 있는 file=hello
이렇게 써 있다는 것은 화면에 나온 파일 중 첫번째 파일인 hello.txt파일을 읽어들여 회색창에 내용을 보여준다는 의미이다. 그래서 바로 file=index, file=password를 순서대로 입력했다.
변화가 없다. 무언가 잘봇된것 같다. 확장자를 붙여 입력해봤으나 같은 결과였다.
뭘까 생각하다가 구글링을 했다. url에 처음 써 있던 문자는 hello였다. 그리고 아무리 다른 문자열을 입력해도 회색창의 내용이 바뀌지 않았다는 것은 아마 파일에 입력한 문자열을 바꿔주는 코드- 입력 문자열 뒤에 새로운 문자열을 추가하는 방식으로-가 있을 거라는 생각을 할 수 있다. 예를 들어 file=hello라고 입력해도 코드를 통해 file=hello11 같은 식으로 문자열이 변형됐을 가능성이 있다는 것이다. 그리고 이런 방법을 통해 file=password라고 입력해도 file=password11라는 식으로 수정된 상태가 될 수 있다. 그렇다면 입력한 부분이 정확히 들어가도록 만들어 주면 문제를 풀 수 있다. 문자열의 마지막을 인식하는 방법은 가장 끝 부분에 null을 읽어 들이는 것이다. 파일을 입력할 때 파일의 이름만을 쓰는 게 아니라 이름 바로 뒤 null을 함께 해 주면
password가 나왔다. (null은 인코딩을 한 으로 만들어 준 후 적어햐 한다)
복사한 후 auth에 넣어주면
성공이다.
(사실은 문자열을 바꿔주는 코드가 아니라 우회했기 때문에 안 풀리나 라는 생각도 들었지만 위 방식으로 풀었으니 패스)
참고:
댓글
댓글 쓰기