웹사이트에서 .git이 노출될 경우 발생할 수 있는 취약점을 재현하는 과정을 기록
첫번째 사이트에서는 /.git 디렉터리가 모두 노출된다.
프레임워크 등을 통해 URL 매핑을 사용한다면 이러한 .git이 노출되지 않겠지만 늘 조심해야한다.
게임 끝이다. wget 등의 도구를 통해 .git 디렉터리의 모든 파일을 다운받는다.
우리의 목적은 플래그를 찾는것이니 git diff를 떠보면 확인할 수 있다.
두번째 문제는 .git에 접근하면 403에러가 발생한다.
하지만 하위 디렉터리 내 파일들에 대한 권한 검증이 부족하여 접근이되는것을 알 수 있다.
/.git/refs/heads/master에서 특정 해시를 얻을 수 있다.
305b983474c15c13fba376c3e466ed8b243c3cea
해당 파일을 이용해 git 정보를 탐색해본다. 임의의 git을 init해주고 해당 git의 object로 대상 파일을 저장하여 파일을 읽어보니 tree 해시를 확인할 수 있다.
58ace0476093d04023f84d7816adacfa7b879c43
위와 동일하게 시도해보면 파일 내용을 확인할 수 있다.
index.php를 다운받아보니 별 내용이 없다.
header.php를 다운받으니 플래그 값이 있다.