old-41 풀이
2024. 2. 17. 02:07ㆍwebhacking.kr
728x90
파일 업로드 폼이 만들어져 있습니다
https://www.php.net/manual/en/function.error-reporting.php
코드 상단 부분에 error_reporting()이라는 함수가 있어서 구글링을 해봤습니다
ini_set()과 함께 쓰이며, 에러 처리를 할 때 에러 문구와 파일 경로를 출력해 주는 역할을 한다고 합니다
파일이 업로드 된 경우에는 str_replace() 함수를 통해 . < > / 가 필터링됩니다
그리고 파일은 upload_dir이라는 경로에 복사되고, 파일 내용으로는 FLAG가 들어갑니다
upload_dir만 알면 파일을 열어 FLAG를 획득할 수 있습니다
upload_dir을 어떻게 알아내는가...이게 문제인데, 파일 이름에는 글자수 제한이 있다고 합니다 (256글자)
이 제한을 넘겨서 파일 이름을 입력해주면 에러가 발생하면서 경로가 나오지 않을까 합니다
가지고 있던 파일 중 적당한 파일을 발견해서 업로드해봤습니다
위 사진에 있는 filename 부분을 257자의 아무 글자로 채워서 패킷을 보내줬습니다
그랬더니 이런 Response가 왔습니다
Warning이 뜨면서 경로와 함께 제가 입력한 파일 명이 나왔습니다 (수많은 a들)
이 경로로 이동해 봤습니다
이게 아닌가 봅니다
경로가 잘못된 것 같으니 왠지 있을 것만 같은 ./flag로 이동해 줍니다
728x90
'webhacking.kr' 카테고리의 다른 글
g00gle1 풀이 (0) | 2024.02.26 |
---|---|
old-35 풀이 (0) | 2024.02.19 |
old-44 풀이 (0) | 2024.02.15 |
old-34 풀이 (0) | 2024.02.15 |
old-59 풀이 (0) | 2024.02.15 |