[webhacking.kr] 36번 문제 풀이[Swap]
💡 Webhacking.kr challenge(old) 36번 문제에 대한 풀이입니다.
문제
vi로 작업하다가 전원이 나가서 파일이 날아갔다고 합니다. 복구를 하면 되는 문제입니다.
문제 풀이
swap 기능
본 문제를 풀기 위해서는 vi의 swap 기능에 대해서 알아야 합니다.vi로 파일을 편집하면 문서가 강제 종료되어도 복구를 할 수 있도록 숨김 파일로 swap 파일이 생성됩니다.
빈 폴더를 생성하고 index.php를 vi로 열면 다음과 같이 파일을 저장하지 않아도 index.php.swp 파일이 생성됩니다.
그리고 스왑 파일은 파일을 저장하지 않아도 실시간으로 파일이 백그라운드에서 저장되고 있습니다. 다음 사진을 보면 index.php 파일에 글을 쓸때마다 swap 파일의 크기가 증가하고 있는 사진입니다.
그리고 index.php가 열린 터미널을 강제 종료하면 다음과 같이 index.php.swp 파일만 남아있습니다.
.index.php.swp 파일이 존재하면 vi index.php로 다시 index.php파일을 생성하려고 할 때, 다음과 같이 복구 화면이 표시됩니다.
R키를 눌러서 복구하면 다음과 같이 강제종료 되기 직전의 파일이 그대로 저장되어 있는 것을 볼 수 있습니다.
문제
동일하게 해당 문제에서 현재 폴더에서 index.php를 작업하다가 전원이 꺼진 상황이므로 .index.php.swp 파일이 존재할 것입니다.
해당 경로로 접근하면 index.php.swp 파일이 다운받아 집니다.
해당 파일을 리눅스로 옮긴 다음 파일 이름을 index.php.swp -> .index.php.swp 으로 바꿔줍니다.
마지막으로 vi index.php를 열어 준다음 복구를 해주면 다음과 같이 플래그가 출력됩니다.
댓글남기기