diff --git a/thirdparty/ansistrm/__init__.py~ b/thirdparty/ansistrm/__init__.py~
deleted file mode 100644
index 72630d2e8..000000000
--- a/thirdparty/ansistrm/__init__.py~
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Copyright (c) 2006-2012 sqlmap developers (http://sqlmap.org/)
-See the file 'doc/COPYING' for copying permission
-"""
-
-pass
diff --git a/thirdparty/ansistrm/ansistrm.py~ b/thirdparty/ansistrm/ansistrm.py~
deleted file mode 100644
index 97cdae649..000000000
--- a/thirdparty/ansistrm/ansistrm.py~
+++ /dev/null
@@ -1,150 +0,0 @@
-#
-# Copyright (C) 2010-2012 Vinay Sajip. All rights reserved. Licensed under the new BSD license.
-#
-import logging
-import os
-import re
-
-class ColorizingStreamHandler(logging.StreamHandler):
- # color names to indices
- color_map = {
- 'black': 0,
- 'red': 1,
- 'green': 2,
- 'yellow': 3,
- 'blue': 4,
- 'magenta': 5,
- 'cyan': 6,
- 'white': 7,
- }
-
- # levels to (background, foreground, bold/intense)
- if os.name == 'nt':
- level_map = {
- logging.DEBUG: (None, 'blue', False),
- logging.INFO: (None, 'green', False),
- logging.WARNING: (None, 'yellow', False),
- logging.ERROR: (None, 'red', False),
- logging.CRITICAL: ('red', 'white', False)
- }
- else:
- level_map = {
- logging.DEBUG: (None, 'blue', False),
- logging.INFO: (None, 'green', False),
- logging.WARNING: (None, 'yellow', False),
- logging.ERROR: (None, 'red', False),
- logging.CRITICAL: ('red', 'white', False)
- }
- csi = '\x1b['
- reset = '\x1b[0m'
-
- @property
- def is_tty(self):
- isatty = getattr(self.stream, 'isatty', None)
- return isatty and isatty()
-
- def emit(self, record):
- try:
- message = self.format(record)
- stream = self.stream
-
- if not self.is_tty:
- stream.write(message)
- else:
- self.output_colorized(message)
- stream.write(getattr(self, 'terminator', '\n'))
-
- self.flush()
- except (KeyboardInterrupt, SystemExit):
- raise
- except:
- self.handleError(record)
-
- if os.name != 'nt':
- def output_colorized(self, message):
- self.stream.write(message)
- else:
- import re
- ansi_esc = re.compile(r'\x1b\[((?:\d+)(?:;(?:\d+))*)m')
-
- nt_color_map = {
- 0: 0x00, # black
- 1: 0x04, # red
- 2: 0x02, # green
- 3: 0x06, # yellow
- 4: 0x01, # blue
- 5: 0x05, # magenta
- 6: 0x03, # cyan
- 7: 0x07, # white
- }
-
- def output_colorized(self, message):
- import ctypes
-
- parts = self.ansi_esc.split(message)
- write = self.stream.write
- h = None
- fd = getattr(self.stream, 'fileno', None)
-
- if fd is not None:
- fd = fd()
-
- if fd in (1, 2): # stdout or stderr
- h = ctypes.windll.kernel32.GetStdHandle(-10 - fd)
-
- while parts:
- text = parts.pop(0)
-
- if text:
- write(text)
-
- if parts:
- params = parts.pop(0)
-
- if h is not None:
- params = [int(p) for p in params.split(';')]
- color = 0
-
- for p in params:
- if 40 <= p <= 47:
- color |= self.nt_color_map[p - 40] << 4
- elif 30 <= p <= 37:
- color |= self.nt_color_map[p - 30]
- elif p == 1:
- color |= 0x08 # foreground intensity on
- elif p == 0: # reset to default color
- color = 0x07
- else:
- pass # error condition ignored
-
- ctypes.windll.kernel32.SetConsoleTextAttribute(h, color)
-
- def colorize(self, message, record):
- if record.levelno in self.level_map:
- bg, fg, bold = self.level_map[record.levelno]
- params = []
-
- if bg in self.color_map:
- params.append(str(self.color_map[bg] + 40))
-
- if fg in self.color_map:
- params.append(str(self.color_map[fg] + 30))
-
- if bold:
- params.append('1')
-
- if params:
- if message.lstrip() != message:
- prefix = re.search(r"\s+", message).group(0)
- message = message[len(prefix):]
- else:
- prefix = ""
-
- message = "%s%s" % (prefix, ''.join((self.csi, ';'.join(params),
- 'm', message, self.reset)))
-
- return message
-
- def format(self, record):
- message = logging.StreamHandler.format(self, record)
- return self.colorize(message, record)
diff --git a/thirdparty/colorama/__init__.py~ b/thirdparty/colorama/__init__.py~
deleted file mode 100644
index 72630d2e8..000000000
--- a/thirdparty/colorama/__init__.py~
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Copyright (c) 2006-2012 sqlmap developers (http://sqlmap.org/)
-See the file 'doc/COPYING' for copying permission
-"""
-
-pass
diff --git a/thirdparty/keepalive/keepalive.py~ b/thirdparty/keepalive/keepalive.py~
deleted file mode 100644
index 867f7f0c1..000000000
--- a/thirdparty/keepalive/keepalive.py~
+++ /dev/null
@@ -1,464 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2002-2003 Michael D. Stenner
-#
-# This program is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published
-# by the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not, see .
-#
-
-"""An HTTP handler for urllib2 that supports HTTP 1.1 and keepalive.
-
- import urllib2
- from keepalive import HTTPHandler
- keepalive_handler = HTTPHandler()
- opener = urllib2.build_opener(keepalive_handler)
- urllib2.install_opener(opener)
-
- fo = urllib2.urlopen('http://www.python.org')
-
-To remove the handler, simply re-run build_opener with no arguments, and
-install that opener.
-
-You can explicitly close connections by using the close_connection()
-method of the returned file-like object (described below) or you can
-use the handler methods:
-
- close_connection(host)
- close_all()
- open_connections()
-
-Example:
-
- keepalive_handler.close_all()
-
-EXTRA ATTRIBUTES AND METHODS
-
- Upon a status of 200, the object returned has a few additional
- attributes and methods, which should not be used if you want to
- remain consistent with the normal urllib2-returned objects:
-
- close_connection() - close the connection to the host
- readlines() - you know, readlines()
- status - the return status (ie 404)
- reason - english translation of status (ie 'File not found')
-
- If you want the best of both worlds, use this inside an
- AttributeError-catching try:
-
- try: status = fo.status
- except AttributeError: status = None
-
- Unfortunately, these are ONLY there if status == 200, so it's not
- easy to distinguish between non-200 responses. The reason is that
- urllib2 tries to do clever things with error codes 301, 302, 401,
- and 407, and it wraps the object upon return.
-
- You can optionally set the module-level global HANDLE_ERRORS to 0,
- in which case the handler will always return the object directly.
- If you like the fancy handling of errors, don't do this. If you
- prefer to see your error codes, then do.
-
-"""
-from httplib import _CS_REQ_STARTED, _CS_REQ_SENT, _CS_IDLE, CannotSendHeader
-
-from lib.core.convert import unicodeencode
-from lib.core.data import kb
-
-import threading
-import urllib2
-import httplib
-import socket
-
-VERSION = (0, 1)
-#STRING_VERSION = '.'.join(map(str, VERSION))
-DEBUG = 0
-HANDLE_ERRORS = 1
-
-class HTTPHandler(urllib2.HTTPHandler):
- def __init__(self):
- self._connections = {}
-
- def close_connection(self, host):
- """close connection to
- host is the host:port spec, as in 'www.cnn.com:8080' as passed in.
- no error occurs if there is no connection to that host."""
- self._remove_connection(host, close=1)
-
- def open_connections(self):
- """return a list of connected hosts"""
- retVal = []
- currentThread = threading.currentThread()
- for name, host in self._connections.keys():
- if name == currentThread.getName():
- retVal.append(host)
- return retVal
-
- def close_all(self):
- """close all open connections"""
- for _, conn in self._connections.items():
- conn.close()
- self._connections = {}
-
- def _remove_connection(self, host, close=0):
- key = self._get_connection_key(host)
- if self._connections.has_key(key):
- if close: self._connections[key].close()
- del self._connections[key]
-
- def _get_connection_key(self, host):
- return (threading.currentThread().getName(), host)
-
- def _start_connection(self, h, req):
- h.clearheaders()
- try:
- if req.has_data():
- data = req.get_data()
- h.putrequest('POST', req.get_selector())
- if not req.headers.has_key('Content-type'):
- req.headers['Content-type'] = 'application/x-www-form-urlencoded'
- if not req.headers.has_key('Content-length'):
- req.headers['Content-length'] = '%d' % len(data)
- else:
- h.putrequest('GET', req.get_selector())
-
- if not req.headers.has_key('Connection'):
- req.headers['Connection'] = 'keep-alive'
-
- for args in self.parent.addheaders:
- h.putheader(*args)
- for k, v in req.headers.items():
- h.putheader(k, v)
- h.endheaders()
- if req.has_data():
- h.send(data)
- except socket.error, err:
- h.close()
- raise urllib2.URLError(err)
-
- def do_open(self, http_class, req):
- h = None
- host = req.get_host()
- if not host:
- raise urllib2.URLError('no host given')
-
- try:
- need_new_connection = 1
- key = self._get_connection_key(host)
- h = self._connections.get(key)
- if not h is None:
- try:
- self._start_connection(h, req)
- except:
- r = None
- else:
- try: r = h.getresponse()
- except httplib.ResponseNotReady, e: r = None
- except httplib.BadStatusLine, e: r = None
-
- if r is None or r.version == 9:
- # httplib falls back to assuming HTTP 0.9 if it gets a
- # bad header back. This is most likely to happen if
- # the socket has been closed by the server since we
- # last used the connection.
- if DEBUG: print "failed to re-use connection to %s" % host
- h.close()
- else:
- if DEBUG: print "re-using connection to %s" % host
- need_new_connection = 0
- if need_new_connection:
- if DEBUG: print "creating new connection to %s" % host
- h = http_class(host)
- self._connections[key] = h
- self._start_connection(h, req)
- r = h.getresponse()
- except socket.error, err:
- if h: h.close()
- raise urllib2.URLError(err)
-
- # if not a persistent connection, don't try to reuse it
- if r.will_close: self._remove_connection(host)
-
- if DEBUG:
- print "STATUS: %s, %s" % (r.status, r.reason)
- r._handler = self
- r._host = host
- r._url = req.get_full_url()
-
- #if r.status == 200 or not HANDLE_ERRORS:
- #return r
- if r.status == 200 or not HANDLE_ERRORS:
- # [speedplane] Must return an adinfourl object
- resp = urllib2.addinfourl(r, r.msg, req.get_full_url())
- resp.code = r.status
- resp.msg = r.reason
- return resp;
- else:
- r.code = r.status
- return self.parent.error('http', req, r, r.status, r.reason, r.msg)
-
- def http_open(self, req):
- return self.do_open(HTTPConnection, req)
-
-class HTTPResponse(httplib.HTTPResponse):
-
- # we need to subclass HTTPResponse in order to
- # 1) add readline() and readlines() methods
- # 2) add close_connection() methods
- # 3) add info() and geturl() methods
-
- # in order to add readline(), read must be modified to deal with a
- # buffer. example: readline must read a buffer and then spit back
- # one line at a time. The only real alternative is to read one
- # BYTE at a time (ick). Once something has been read, it can't be
- # put back (ok, maybe it can, but that's even uglier than this),
- # so if you THEN do a normal read, you must first take stuff from
- # the buffer.
-
- # the read method wraps the original to accomodate buffering,
- # although read() never adds to the buffer.
- # Both readline and readlines have been stolen with almost no
- # modification from socket.py
-
-
- def __init__(self, sock, debuglevel=0, strict=0, method=None):
- if method: # the httplib in python 2.3 uses the method arg
- httplib.HTTPResponse.__init__(self, sock, debuglevel, method)
- else: # 2.2 doesn't
- httplib.HTTPResponse.__init__(self, sock, debuglevel)
- self.fileno = sock.fileno
- self._rbuf = ''
- self._rbufsize = 8096
- self._handler = None # inserted by the handler later
- self._host = None # (same)
- self._url = None # (same)
-
- _raw_read = httplib.HTTPResponse.read
-
- def close_connection(self):
- self.close()
- self._handler._remove_connection(self._host, close=1)
-
- def info(self):
- return self.msg
-
- def geturl(self):
- return self._url
-
- def read(self, amt=None):
- # the _rbuf test is only in this first if for speed. It's not
- # logically necessary
- if self._rbuf and not amt is None:
- L = len(self._rbuf)
- if amt > L:
- amt -= L
- else:
- s = self._rbuf[:amt]
- self._rbuf = self._rbuf[amt:]
- return s
-
- s = self._rbuf + self._raw_read(amt)
- self._rbuf = ''
- return s
-
- def readline(self, limit=-1):
- data = ""
- i = self._rbuf.find('\n')
- while i < 0 and not (0 < limit <= len(self._rbuf)):
- new = self._raw_read(self._rbufsize)
- if not new: break
- i = new.find('\n')
- if i >= 0: i = i + len(self._rbuf)
- self._rbuf = self._rbuf + new
- if i < 0: i = len(self._rbuf)
- else: i = i+1
- if 0 <= limit < len(self._rbuf): i = limit
- data, self._rbuf = self._rbuf[:i], self._rbuf[i:]
- return data
-
- def readlines(self, sizehint = 0):
- total = 0
- list = []
- while 1:
- line = self.readline()
- if not line: break
- list.append(line)
- total += len(line)
- if sizehint and total >= sizehint:
- break
- return list
-
-
-class HTTPConnection(httplib.HTTPConnection):
- # use the modified response class
- response_class = HTTPResponse
- _headers = None
-
- def clearheaders(self):
- self._headers = {}
-
- def putheader(self, header, value):
- """Send a request header line to the server.
-
- For example: h.putheader('Accept', 'text/html')
- """
- if self.__state != _CS_REQ_STARTED:
- raise CannotSendHeader()
-
- self._headers[header] = value
-
- def endheaders(self):
- """Indicate that the last header line has been sent to the server."""
-
- if self.__state == _CS_REQ_STARTED:
- self.__state = _CS_REQ_SENT
- else:
- raise CannotSendHeader()
-
- for header in ['Host', 'Accept-Encoding']:
- if header in self._headers:
- str = '%s: %s' % (header, self._headers[header])
- self._output(str)
- del self._headers[header]
-
- for header, value in self._headers.items():
- str = '%s: %s' % (header, value)
- self._output(str)
-
- self._send_output()
-
- def send(self, str):
- httplib.HTTPConnection.send(self, unicodeencode(str, kb.pageEncoding))
-
-#########################################################################
-##### TEST FUNCTIONS
-#########################################################################
-
-def error_handler(url):
- global HANDLE_ERRORS
- orig = HANDLE_ERRORS
- keepalive_handler = HTTPHandler()
- opener = urllib2.build_opener(keepalive_handler)
- urllib2.install_opener(opener)
- pos = {0: 'off', 1: 'on'}
- for i in (0, 1):
- print " fancy error handling %s (HANDLE_ERRORS = %i)" % (pos[i], i)
- HANDLE_ERRORS = i
- try:
- fo = urllib2.urlopen(url)
- foo = fo.read()
- fo.close()
- try: status, reason = fo.status, fo.reason
- except AttributeError: status, reason = None, None
- except IOError, e:
- print " EXCEPTION: %s" % e
- raise
- else:
- print " status = %s, reason = %s" % (status, reason)
- HANDLE_ERRORS = orig
- hosts = keepalive_handler.open_connections()
- print "open connections:", ' '.join(hosts)
- keepalive_handler.close_all()
-
-def continuity(url):
- import md5
- format = '%25s: %s'
-
- # first fetch the file with the normal http handler
- opener = urllib2.build_opener()
- urllib2.install_opener(opener)
- fo = urllib2.urlopen(url)
- foo = fo.read()
- fo.close()
- m = md5.new(foo)
- print format % ('normal urllib', m.hexdigest())
-
- # now install the keepalive handler and try again
- opener = urllib2.build_opener(HTTPHandler())
- urllib2.install_opener(opener)
-
- fo = urllib2.urlopen(url)
- foo = fo.read()
- fo.close()
- m = md5.new(foo)
- print format % ('keepalive read', m.hexdigest())
-
- fo = urllib2.urlopen(url)
- foo = ''
- while 1:
- f = fo.readline()
- if f: foo = foo + f
- else: break
- fo.close()
- m = md5.new(foo)
- print format % ('keepalive readline', m.hexdigest())
-
-def comp(N, url):
- print ' making %i connections to:\n %s' % (N, url)
-
- sys.stdout.write(' first using the normal urllib handlers')
- # first use normal opener
- opener = urllib2.build_opener()
- urllib2.install_opener(opener)
- t1 = fetch(N, url)
- print ' TIME: %.3f s' % t1
-
- sys.stdout.write(' now using the keepalive handler ')
- # now install the keepalive handler and try again
- opener = urllib2.build_opener(HTTPHandler())
- urllib2.install_opener(opener)
- t2 = fetch(N, url)
- print ' TIME: %.3f s' % t2
- print ' improvement factor: %.2f' % (t1/t2, )
-
-def fetch(N, url, delay=0):
- lens = []
- starttime = time.time()
- for i in xrange(N):
- if delay and i > 0: time.sleep(delay)
- fo = urllib2.urlopen(url)
- foo = fo.read()
- fo.close()
- lens.append(len(foo))
- diff = time.time() - starttime
-
- j = 0
- for i in lens[1:]:
- j = j + 1
- if not i == lens[0]:
- print "WARNING: inconsistent length on read %i: %i" % (j, i)
-
- return diff
-
-def test(url, N=10):
- print "checking error hander (do this on a non-200)"
- try: error_handler(url)
- except IOError, e:
- print "exiting - exception will prevent further tests"
- sys.exit()
- print
- print "performing continuity test (making sure stuff isn't corrupted)"
- continuity(url)
- print
- print "performing speed comparison"
- comp(N, url)
-
-if __name__ == '__main__':
- import time
- import sys
- try:
- N = int(sys.argv[1])
- url = sys.argv[2]
- except:
- print "%s " % sys.argv[0]
- else:
- test(url, N)
diff --git a/thirdparty/magic/__init__.py~ b/thirdparty/magic/__init__.py~
deleted file mode 100644
index 236166b59..000000000
--- a/thirdparty/magic/__init__.py~
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env python
-
-pass
diff --git a/thirdparty/multipart/__init__.py~ b/thirdparty/multipart/__init__.py~
deleted file mode 100644
index 236166b59..000000000
--- a/thirdparty/multipart/__init__.py~
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env python
-
-pass
diff --git a/thirdparty/pagerank/pagerank.py~ b/thirdparty/pagerank/pagerank.py~
deleted file mode 100644
index 45573fee7..000000000
--- a/thirdparty/pagerank/pagerank.py~
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-#
-# Script for getting Google Page Rank of page
-# Google Toolbar 3.0.x/4.0.x Pagerank Checksum Algorithm
-#
-# original from http://pagerank.gamesaga.net/
-# this version was adapted from http://www.djangosnippets.org/snippets/221/
-# by Corey Goldberg - 2010
-#
-# updated by reference http://www.seroundtable.com/google-pagerank-change-14132.html
-# by Miroslav Stampar - 2012
-#
-# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
-
-import urllib
-
-def get_pagerank(url):
- _ = 'http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&ch=%s&q=info:%s' % (check_hash(hash_url(url)), urllib.quote(url))
- try:
- f = urllib.urlopen(_)
- rank = f.read().strip()[9:]
- except Exception:
- rank = 'N/A'
- else:
- rank = '0' if not rank or not rank.isdigit() else rank
- return rank
-
-def int_str(string_, integer, factor):
- for i in xrange(len(string_)) :
- integer *= factor
- integer &= 0xFFFFFFFF
- integer += ord(string_[i])
-
- return integer
-
-def hash_url(string_):
- c1 = int_str(string_, 0x1505, 0x21)
- c2 = int_str(string_, 0, 0x1003F)
-
- c1 >>= 2
- c1 = ((c1 >> 4) & 0x3FFFFC0) | (c1 & 0x3F)
- c1 = ((c1 >> 4) & 0x3FFC00) | (c1 & 0x3FF)
- c1 = ((c1 >> 4) & 0x3C000) | (c1 & 0x3FFF)
-
- t1 = (c1 & 0x3C0) << 4
- t1 |= c1 & 0x3C
- t1 = (t1 << 2) | (c2 & 0xF0F)
-
- t2 = (c1 & 0xFFFFC000) << 4
- t2 |= c1 & 0x3C00
- t2 = (t2 << 0xA) | (c2 & 0xF0F0000)
-
- return (t1 | t2)
-
-def check_hash(hash_int):
- hash_str = '%u' % (hash_int)
- flag = 0
- check_byte = 0
-
- i = len(hash_str) - 1
- while i >= 0:
- byte = int(hash_str[i])
- if 1 == (flag % 2):
- byte *= 2;
- byte = byte / 10 + byte % 10
- check_byte += byte
- flag += 1
- i -= 1
-
- check_byte %= 10
- if 0 != check_byte:
- check_byte = 10 - check_byte
- if 1 == flag % 2:
- if 1 == check_byte % 2:
- check_byte += 9
- check_byte >>= 1
-
- return '7' + str(check_byte) + hash_str
diff --git a/thirdparty/socks/__init__.py~ b/thirdparty/socks/__init__.py~
deleted file mode 100644
index 72630d2e8..000000000
--- a/thirdparty/socks/__init__.py~
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Copyright (c) 2006-2012 sqlmap developers (http://sqlmap.org/)
-See the file 'doc/COPYING' for copying permission
-"""
-
-pass
diff --git a/thirdparty/termcolor/__init__.py~ b/thirdparty/termcolor/__init__.py~
deleted file mode 100644
index 72630d2e8..000000000
--- a/thirdparty/termcolor/__init__.py~
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Copyright (c) 2006-2012 sqlmap developers (http://sqlmap.org/)
-See the file 'doc/COPYING' for copying permission
-"""
-
-pass