2025/04/21 2

level 2 Relative Path Overwrite Advanced

index.php, vuln.php, main.php, report.php 등 거의 모든 코드들이 이전 문제와 유사하다.하지만 이 문제의 차이점은 404.php 파일과 filter.js가 static 폴더에 저장된다는 점이다. 이렇게 vuln 페이지에 접속하면 404.php에 의해 /filter.js not found라는 문구가 출력되는 것을 볼 수 있다. 따라서 현재 vuln 페이지에서 filter.js의 경로를 /filter.js로 지정하고 있기 때문에 filter.js가 vuln페이지에서 불러와지지 않는 것이다. 이에 따라 404.php가 로드되어 filter.js가 덮어씌워졌다. 따라서 우리는 404.php를 이용해 filter.js를 덮어쓸 것이다.url에 /를 하나만 더 추가해주면 filter..

CTF & Wargame(WEB) 2025.04.21

RPO(Relative Path Overwrite) 이해하기

level 2 Relative Path Overwrite 문제에서 http://host/?page=vuln&param=on이라고 입력했을 때는 filter.js가 정상적으로 로드되어 필터링이 되고 http://host/index.php/?page=vuln&param=on이라고 입력했을 때는 filter.js가 정상적으로 로드되지 않아 필터링도 적용되지 않는 이유는이 코드에서 filter.js를 상대 경로인 /filter.js 로 로드하고 있기 때문이다. 위에서 말한 내용을 이를 기반으로 다시 설명하면http://host/?page=vuln&param=on은 현재 문서가 /(루트)라고 보고 filter.js를 요청하기 때문에 정상적으로 로드가 된다.하지만http://host/index.php/?page=..

CTF & Wargame(WEB) 2025.04.21