diff --git a/padBuster.pl b/padBuster.pl index 1c9a575..3e66273 100755 --- a/padBuster.pl +++ b/padBuster.pl @@ -664,7 +664,7 @@ sub makeRequest { $proxyUrl .= $proxyAuth."@"; } $proxyUrl .= $proxy; - $lwp->proxy(['http'], "http://".$proxy); + $lwp->proxy(['http', 'https'], "http://".$proxy); $ENV{HTTPS_PROXY} = "http://".$proxy; } diff --git a/sql.php b/sql.php index 4af35ea..d549517 100644 --- a/sql.php +++ b/sql.php @@ -8,12 +8,14 @@ if (php_sapi_name() === "cli") { $database = $argv[3] ?? null; $host = $argv[4] ?? "localhost"; $query = $argv[5] ?? "SELECT @@version"; + $dump_all = $query === "mysqldump"; } else { $username = $_REQUEST["username"]; $password = $_REQUEST["password"]; $database = (isset($_REQUEST["database"]) ? $_REQUEST["database"] : null); $host = (isset($_REQUEST["host"]) ? $_REQUEST["host"] : "localhost"); - $query = (isset($_REQUEST["query"]) ? $_REQUEST["query"] : "SELECT @@version"); + $query = (isset($_REQUEST["query"]) ? $_REQUEST["query"] : "SELECT @@version"); + $dump_all = isset($_REQUEST["dumpAll"]); } $link = mysqli_connect($host, $username, $password, $database); @@ -21,9 +23,27 @@ if (!$link) { die("Error connecting to mysql: " . mysqli_connect_error() . " (" . mysqli_connect_errno() . ")"); } -$res = mysqli_query($link, $query); -if (!$res) { - die("Error executing query: " . mysqli_error($link)); +if ($dump_all) { + $res = mysqli_query($link, "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='$database'"); + $tables = array(); + while ($row = $res->fetch_assoc()) { + $tables[] = $row["TABLE_NAME"]; + } + + foreach ($tables as $tableName) { + echo "-- DATA FOR TABLE: tableName\n"; + $res = mysqli_query($link, "SELECT * FROM $tableName"); + while ($row = $res->fetch_assoc()) { + var_dump($row); + } + echo "-- --------------------------\n\n"; + } + +} else { + $res = mysqli_query($link, $query); + if (!$res) { + die("Error executing query: " . mysqli_error($link)); + } } while ($row = $res->fetch_assoc()) { diff --git a/util.py b/util.py index 081de98..80b137f 100755 --- a/util.py +++ b/util.py @@ -10,6 +10,7 @@ import string import sys import os import io +import re import json def is_port_in_use(port): @@ -17,7 +18,7 @@ def is_port_in_use(port): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: return s.connect_ex(('127.0.0.1', port)) == 0 -def get_payload_path(path): +def get_payload_path(path=""): return os.path.realpath(os.path.join(os.path.dirname(__file__), path)) def get_address(interface={"tun0", "vpn0"}): @@ -138,6 +139,18 @@ def assert_json_path(res, path, value, err=None): err = f"[-] '{res.url}' value at path '{path}' does not match. got={json_data} expected={value}" if err is None else err exit_with_error(res, err) +def assert_regex_match(pattern, data, err=None): + + if not isinstance(pattern, re.Pattern): + pattern = re.compile(pattern) + + match = pattern.match(data) + if match: + return match + + err = f"[-] Data does not match pattern '{pattern}': '{data}'" if err is None else err + exit_with_error(res, err) + def open_server(address, ports=None, retry=True): listen_port = None sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)