Giter Club home page Giter Club logo

svn-extractor's Introduction

Svn-Extractor

Many a times web application pen-testers are encountered with the presence of .svn folders. For those not aware .svn folder is used by SVN version control system to perform its operations. For a blackbox pentest this folder contains huge amount of information. Some of the key areas where this can help includes.

  1. Uncover hidden files and folder names

  2. Access the source code of the files.

  3. download files even if the restrictions are in place at htaccess.

How this could be achieved.

  1. Uncover hidden files and folder names

There are two ways in which this can be achieved based on the version of SVN in use.
for <1.6 we had .svn/entries files which contained list of files / folders as well as usernames used for commiting those files.
for >1.6 we have .svn/wc.db which contains simmilar data but in a sqlite3 format.
These files could be directly accessible through url.

  1. Access the source code / download files even if htaccess blocks its access.

SVN keeps a backup copy of all files in two seperate locations.

  1. .svn/text-base/ "filename" .svn-base
  2. .svn/pristine/ "XX" / "CHECKSUM" .svn-base

where

filename is actual name of file.

CHECKSUM is Sha1 sum of the file

XX is first two character of CHECKSUM.

first type of entries has one limitations suppose file name is testme.php so path becomes.

.svn/text-base/testme.php.svn-base

a large number of servers will execute the file and serve the output.

that's where option 2 shines however this information is available only in case of wc.db (>1.6 SVN version) and this requires that .sv/pristine directory should be web accessible.

However after searching a lot i was not able to find a single code which can do both these things in one go.

so here is a tool which can perform both the operations in one script.

Usage

minimal

svn-extractor.py --url "url with .svn available"

alloptions

python svnextractor.py --help
usage: svnextractor.py [-h] --url TARGET [--debug] [--noextract] [--userlist] [--wcdb] [--entries]

This program is used to extract the hidden SVN files from a webhost considering either .svn entries file (<1.6) or wc.db (> 1.7) are a actually automates the directory navigation and text extraction process

optional arguments:
-h, --help show this help message and exit
--url TARGET Provide URL
--debug Provide debug information
--noextract Don't extract files just show content
--userlist show the usernames used for commit
--wcdb check only wcdb
--entries check only .svn/entries file

Credit (C) Anant Shrivastava http://anantshri.info Greets to Amol Naik, Akash Mahajan, Prasanna K, Lava Kumar for valuable inputs

References

It would be unfair to say that i did all the research myself so here are the links to various resources i used to get the info out.

  1. http://pen-testing.sans.org/blog/pen-testing/2012/12/06/all-your-svn-are-belong-to-us (manual technique for wc.db)

  2. http://www.adamgotterer.com/post/28125474053/hacking-the-svn-directory-archive (manual technique for .svn/entries)

  3. http://www.cirt.net/svnpristine (only automated tool i can find online doing wc.db magic)

svn-extractor's People

Contributors

anantshri avatar orf avatar sullo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.