Portswigger-Information disclosure in version control history

problem link

풀이

이 웹사이트는 버전 컨트롤 히스토리에 민감한 데이터를 노출한다. administrator의 비밀번호를 얻고 carlos를 삭제하라.

/.git 경로에 접속하면 디렉토리를 볼 수 있다. git 파일을 다운로드하여 분석한다. wget -r <<문제 URL>>/.git 으로 .git 디렉토리를 전부 다운로드한다.

git status 한 결과 두 파일이 삭제된 것을 볼 수 있다.

git log를 살펴보니 몇 가지 커밋 메시지가 있다. 2ebb24f26ef4f08e7f18fc0c7c4215382db8bf05 커밋에서 administrator의 비밀번호를 삭제했다는 메시지를 볼 수 있다.

비밀번호를 삭제하기 이전인 528674547587cfd41fbdf8821fe7cc0256e9cf1f 커밋으로 checkout 한다.

cat admin.conf로 파일 내용을 읽으면 administrator의 비밀번호를 얻을 수 있다.

이 비밀번호를 이용해 administrator로 로그인해 carlos를 삭제하면 성공이다.

이 취약점은 .git 디렉토리에 액세스 컨트롤이 없어 아무나 접근할 수 있어 발생했다. 또한 하드코딩했던 커밋을 삭제하지 않고 내버려 둔 뒤 비밀번호 또한 변경하지 않은 점이 문제가 되었다.


tags: writeup, information disclosure vulnerability, wstg-conf-04, web hacking