.git 디렉터리: Git의 데이터를 저장하고 관리하는 디렉터리입니다. 이 디렉터리를 복사하기만 해도 저장소가 백업됩니다.

전세계에 2억3천만 개가 넘는 웹 도메인을 검색한 결과 39만 개의 웹페이지에서 .git 공개 디렉터리가 발견되었습니다. 이는 민감한 정보가 노출될 수 있는 걱정스러운 상황입니다.

많은 웹 개발자는 오픈 소스 개발 도구 Git을 사용하여 페이지를 작성합니다.
프로젝트의 표준 정보 저장소 .git 디렉터리를 공개적으로 액세스할 수 있는 사이트에 두지 말아야 하지만 종종 이런 일이 발생합니다. 더구나, 그들은 종종 부주의하게 중요한 정보가 그곳에 있게 허용합니다.

이것은 심각한 문제입니다. 왜냐하면 웹사이트의 구조에 대한 많은 정보가 있는 현재 및 과거 파일을 얻을 수 있고, DB 비밀번호, API keys, 개발 IDE 설정 등과 같은 매우 민감한 데이터를 얻을 수 있기 때문입니다.

Git 저장소는 잘 알려진 구조를 가지고 있으므로, 쉽게 각각의 파일을 다운로드하고, 저장소의 각 objects/packs에 참조를 분석할 수 있습니다.

취약 여부 확인
web-site/.git/
올바르게 설정하면 작동하지 않아야 합니다.

대응방안
Git을 사용하거나 라이브 서버에서 Git을 사용하는 경우 .git 디렉터리가 색인화되지 않고 디렉터리, 서브 디렉터리 및 모든 파일이 서버 권한 규칙을 사용하여 액세스할 수 없는지 확인하십시오.
또한 Git에 추가된 파일에 민감한 데이터를 포함시키지 않는 것이 좋습니다. 전 세계에서 볼 수 있도록 Github 또는 Bitbucket과 같은 장소로 정보를 푸시하면 악몽이 일어날 수 있습니다.
또한 .gitignore 파일을 사용하여 민감한 파일을 적절하게 무시하고 실수로 추가하지 않도록 해야 합니다.
*gitignore: Project에 원하지 않는 Backup File이나 Log File, 혹은 컴파일된 파일들을 Git에서 제외시킬수 있는 설정 File.

참조
https://threatpost.com/open-git-directories-leave-390k-websites-vulnerable/137299/
https://blog.netspi.com/dumping-git-data-from-misconfigured-web-servers/
https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EB%82%B4%EB%B6%80-Plumbing-%EB%AA%85%EB%A0%B9%EA%B3%BC-Porcelain-%EB%AA%85%EB%A0%B9