A Python tool to dump a git repository from a website, even when directory listing is disabled.
git-dumper is a Python-based command-line tool that downloads a complete git repository from a web server by accessing the exposed .git directory. It solves the problem of recovering source code when directory listing is disabled, using intelligent analysis of git metadata to fetch all repository files and restore the working tree.
Security researchers, penetration testers, and developers conducting security assessments or forensic analysis on web applications with exposed .git directories.
Developers choose git-dumper for its ability to bypass disabled directory listings and thoroughly reconstruct git repositories using multiple discovery methods, offering more reliability than simple wget-based approaches.
A tool to dump a git repository from a website
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses multiple methods to find git files like .git/HEAD and refs when directory listing is disabled, as outlined in the how-it-works section, ensuring thorough recovery even with restricted access.
Supports simultaneous requests with the configurable -j option for faster dumping, improving efficiency in network operations as mentioned in the key features.
Allows custom proxies, user agents, headers, and timeouts through command-line options, making it adaptable to various network environments during security assessments.
Automatically runs `git checkout .` after dumping to recover the original files, simplifying the recovery process as described in the key features.
The disclaimer warns that downloading from attacker-controlled repositories can lead to remote code execution, posing a significant security threat that requires cautious use.
Requires git to be installed locally for the checkout step, which may not be available in all environments, adding an extra prerequisite.
Lacks a graphical user interface, which can be a barrier for users less familiar with terminal commands, limiting accessibility for some.