libpywebhack
index
/home/beched/PycharmProjects/LibPyWebHack/libpywebhack.py

#-*- coding:utf-8 -*-

 
Modules
       
httplib
re
socket
sys
threading

 
Classes
       
common.PyWebHack
WebHack

 
class WebHack(common.PyWebHack)
     Methods defined here:
apachetest(self, path)
Perform some security-specific information retrieval from Apache
:param path: target path
argsfind(self, path, modes=['get'], fill='1', base='bases/argsbase.txt', fix=[])
Search for the input parameters of the web-scenario
:param path: target path
:param modes: list of the data transition methods ('get', 'post' or 'cookie')
:param fill: the payload which should be plugged into parameters
:param base: path to file with parameter names
:param fix: fixed points, i.e. a list of parameters which should be sent in each request
asptest(self, path)
Search for some sensitive .NET-specific files
:param path: target path
brutesubs(self, threads=5, words='bases/wordlist2.txt', ban_codes=None, ban_regex=None)
Multi-threaded brute force of existing subdomains of the given domain
:param threads: number of threads
:param words: path to file with subdomain names
:param ban_codes: ignore subdomains which respond with these codes via HTTP
:param ban_regex: ignore subdomains which respond with body matching this regular expression via HTTP
dobrute(self, a, b)
A worker-method for WebHack.brutesubs()
:param a: beginning of interval
:param b: end of interval
domxsstest(self, path)
Test if javascript-file matches some regular expressions, possibly indicating DOM XSS
:param path: target path
fuzzbackups(self, path)
Search for source code backups of the script
:param path: target path
gpcreq(self, path, query='', mode='get')
restructure(path)
Send data via GET, POST request or in Cookie-header
:param path: target path
:param query: URL-encoded QUERY_STRING
:param mode: 'get', 'post' or 'cookie'
:return:
iiscan(self, path)
Tilde (~) and wildcard (*) file names brute force in IIS
:param path: target path
iistest(self, path)
Search for sensitive IIS files, perform IIS files scanning, test access restriction bypass, test ASP.NET issues
:param path: target path
javatest(self, path)
Hack Java
:param path: target path
minifuzz(self, path)
Rapid fuzzing of known parameters
:param path: target path
nginxtest(self, path)
Hack NginX
:param path: target path
phptest(self, path)
Check for RCE, try to get PHP script path disclosure
:param path: target path
pytest(self, path)
Hack Django
:param path: target path
rubytest(self, path)
Retrieve information from HTTP headers, check for RoR object deserialization RCE
:param path: target path
softdetect(self, path)
Extract information from HTTP headers, detects various platforms and searches for some files
:param path: target path

Methods inherited from common.PyWebHack:
__del__(self)
The class destructor. Outputs the total number of HTTP requests made
__init__(self, *args, **kwargs)
The class constructor.
:param host: a host to work with in format hostname[:port]. The only necessary parameter
:param ssl: if True, HTTPS will be used, default value is 0
:param ajax: if True, "X-Requested-With: XMLHttpRequest" header will be added to all HTTP requests
:param cut: if set, all strings matching specified regexp will be removed from all HTTP responses
:param sleep: if set, sleep after each HTTP request for the specified number of seconds, default value is 0
:param verbose: if True, an output will be sent to STDOUT, default value is 1
:return:
chkpath(self, paths, comment=None)
Check that the given paths exist. If some path exists, it's added to self.known_urls
:param paths: a list with request URIs
:param comment: a description of what's going on. Will be logged
help(self)
A help method template. Called when invalid input is provided to the constructor
makereq(self, path, query=None, headers=None, method='GET')
The core method for sending HTTP requests
:param path: a request URI (if it's directory, it should end with '/')
:param query: a query string
:param headers: a dict with additional request headers
:param method: HTTP request method
:return: a response tuple (str body, int code, dict headers)
newstructure(self)
Generates a dictionary for holding the information about some path
:return: a dict with all necessary (empty) fields
rep_log(self, string, delim='\n')
Logging method. If self.verbose is True, sents output to STDOUT
:param string: a log entry
:param delim: a delimiter which is appended to the entry
restructure(self, path)
Sets current path and generates a new structure for it, if path is new
:param path: current path

Data and other attributes inherited from common.PyWebHack:
add_headers = {'Cookie': '', 'User-Agent': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'}
allowed_params = ['host', 'ssl', 'ajax', 'cut', 'sleep', 'verbose']
args = {}
cnt_reqs = 0
current_path = ''
known_subs = []
known_urls = {}
log = ''
verbose = False

 
Functions
       
sleep(...)
sleep(seconds)
 
Delay execution for a given number of seconds.  The argument may be
a floating point number for subsecond precision.

 
Data
        __author__ = 'Beched'

 
Author
        Beched