25번 문제를 접속하면 무슨 문제인지 바로 알 수 있을 것이다.



주소를 먼저 보면 file이라는 이름의 파라미터 값으로 hello를 넘겨준다.


어떤식으로 코딩을 했는지 조금 생각해보면 file로 받은 변수에 + ".txt"를 붙여주고 파일을 읽는 것 같다.


출제자의 의도는 password.php 파일을 읽으라는 것 같다.


file에 password.php를 넣어보면 역시 예상한데로 password.php.txt가 되는 것 같다.



password.php.txt라는 파일이 없어서 그런지 default로 있는 hello.txt를 계속 읽어주는 것 같다.


그렇다면 문제를 어떻게 풀어야 하는가?




php의 경우 c언어를 기반으로한 언어이기 때문에 문자열을 다룰때 몇몇 함수에서 널바이트에 영향을 많이 받는다.


아마 널바이트에 영향을 받는 함수를 사용 했을것이고 password.php%00을 넣어줌으로써 문자열의 끝을 알려주고 뒤에 ".txt"는 무시된다.


따라서 password.php를 읽어 볼 수 있다.



끝!


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

webhacking.kr 27번  (0) 2016.11.21
webhacking.kr 26번  (0) 2016.11.20
webhacking.kr 25번  (0) 2016.11.20
webhacking.kr 24번  (0) 2016.11.19
webhacking.kr 23번  (0) 2016.11.19
webhacking.kr 22번  (1) 2016.11.18

+ Recent posts