From 97a4c5801b99d938e82f11deb34b9f57eebce1cc Mon Sep 17 00:00:00 2001 From: adrien Date: Sat, 12 Oct 2024 19:10:50 +0200 Subject: [PATCH] lot of stuff --- filter_inputs.php | 181 ++++++++++++++------------- index.php | 55 +++++---- options.php | 307 ++++++++++++++++++++++++++++++++++++++++++++++ scan-options.php | 259 -------------------------------------- scan.php | 42 ++++--- style.css | 4 + stylesheet.xsl | 66 +++++++--- 7 files changed, 505 insertions(+), 409 deletions(-) create mode 100755 options.php delete mode 100755 scan-options.php diff --git a/filter_inputs.php b/filter_inputs.php index 4c81b01..ae9054d 100644 --- a/filter_inputs.php +++ b/filter_inputs.php @@ -10,102 +10,109 @@ $name = filter_input(INPUT_GET, 'name', FILTER_VALIDATE_REGEXP, [ 'options' => ['regexp' => '/^[^<>:"\/|?]+$/'], ]); -$hostsListRegex = "/^[\da-zA-Z-.,:\/]+$/"; +$compareWith = filter_input(INPUT_GET, 'compareWith', FILTER_VALIDATE_REGEXP, [ + 'flags' => FILTER_NULL_ON_FAILURE, + 'options' => ['regexp' => '/^[^<>:"\/|?]+$/'], +]); + +$hostsListRegex = "/^[\da-zA-Z-.,:\/]+$/"; $protocolePortsListRegex = "/^(([TU]:)?[0-9\-]+|[a-z\-]+)(,([TU]:)?[0-9\-]+|,[a-z\-]+)*$/"; -$portsListRegex = "/^([0-9\-]+|[a-z\-]+)(,[0-9\-]+|,[a-z\-]+)*$/"; -$tempoRegex = "/^\d+[smh]?$/"; +$portsListRegex = "/^([0-9\-]+|[a-z\-]+)(,[0-9\-]+|,[a-z\-]+)*$/"; +$tempoRegex = "/^\d+[smh]?$/"; $inputs = filter_input_array(INPUT_GET, [ - 'iR' => ['filter' => FILTER_VALIDATE_INT], - '-exclude' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], + 'iR' => ['filter' => FILTER_VALIDATE_INT], + 'exclude' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], - 'sL' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], - 'sP' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'P0' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'Pn' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PS' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], - 'PA' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], - 'PU' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], - 'PE' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PP' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PO' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 255]], - 'n' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'R' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-dns-servers' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], - - 'sS' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sT' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sA' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sW' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sM' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sF' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sN' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sX' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PU' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sL' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], + 'sP' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'P0' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'Pn' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PS' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], + 'PA' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], + 'PU' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], + 'PE' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PP' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-scanflags' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^([URG|ACK|PSH|RST|SYN|FIN]+)$|^([0-2]?\d?\d)$/"]], - 'sI' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^[a-zA-Z\d:.-]+(:\d+)?$/"]], - 'sO' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'b' => FILTER_VALIDATE_DOMAIN, - '-traceroute' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-reason' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PO' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 255]], + 'PR' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'send-ip' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'n' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'R' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'dns-servers' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], - 'p' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], - 'F' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'r' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-top-ports' => FILTER_VALIDATE_INT, - '-port-ratio' => ['filter' => FILTER_VALIDATE_FLOAT, 'options' => ['min_range' => 0, 'max_range' => 1]], + 'sS' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sT' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sA' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sW' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sM' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sF' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sN' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sX' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PU' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'scanflags' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^([URG|ACK|PSH|RST|SYN|FIN]+)$|^([0-2]?\d?\d)$/"]], + 'sI' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^[a-zA-Z\d:.-]+(:\d+)?$/"]], + 'sO' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'b' => FILTER_VALIDATE_DOMAIN, + 'traceroute' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'reason' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'sV' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-version-light' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-version-intensity' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 9]], - '-version-all' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-version-trace' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'p' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], + 'F' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'r' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'top-ports' => FILTER_VALIDATE_INT, + 'port-ratio' => ['filter' => FILTER_VALIDATE_FLOAT, 'options' => ['min_range' => 0, 'max_range' => 1]], - 'O' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-osscan-limit' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-osscan-guess' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'sV' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'version-light' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'version-intensity' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 9]], + 'version-all' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'version-trace' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'T0' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'T1' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'T2' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'T3' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'T4' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'T5' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-min-hostgroup' => ['filter' => FILTER_VALIDATE_INT], - '-max-hostgroup' => ['filter' => FILTER_VALIDATE_INT], - '-min-parallelism' => ['filter' => FILTER_VALIDATE_INT], - '-max-parallelism' => ['filter' => FILTER_VALIDATE_INT], - '-min-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], - '-max-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], - '-initial-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], - '-max-retries' => ['filter' => FILTER_VALIDATE_INT], - '-host-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], - '-scan-delay' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], - '-max-scan-delay' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], + 'O' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'osscan-limit' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'osscan-guess' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'f' => ['filter' => FILTER_VALIDATE_INT], - 'mtu' => ['filter' => FILTER_VALIDATE_INT], - 'D' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], - 'S' => ['filter' => FILTER_VALIDATE_IP], - 'e' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^[a-z\d]+$/"]], - 'g' => ['filter' => FILTER_VALIDATE_INT], - '-source-port' => ['filter' => FILTER_VALIDATE_INT], - '-data-length' => ['filter' => FILTER_VALIDATE_INT], - '-ip-options' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^\"(R|T|U|L [\da-zA-Z-.: ]+|S [\da-zA-Z-.: ]+|\\\\x[\da-fA-F]{1,2}(\*[\d]+)?|\\\\[0-2]?[\d]{1,2}(\*[\d]+)?)\"$/"]], - 'ttl' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 255]], - '-spoof-mac' => ['filter' => FILTER_VALIDATE_MAC], - '-badsum' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'T0' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'T1' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'T2' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'T3' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'T4' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'T5' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'min-hostgroup' => ['filter' => FILTER_VALIDATE_INT], + 'max-hostgroup' => ['filter' => FILTER_VALIDATE_INT], + 'min-parallelism' => ['filter' => FILTER_VALIDATE_INT], + 'max-parallelism' => ['filter' => FILTER_VALIDATE_INT], + 'min-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], + 'max-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], + 'initial-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], + 'max-retries' => ['filter' => FILTER_VALIDATE_INT], + 'host-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], + 'scan-delay' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], + 'max-scan-delay' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], - //'6' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'A' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-send-eth' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-send-ip' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-privileged' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'V' => ['filter' => FILTER_VALIDATE_BOOLEAN], - '-unprivileged' => ['filter' => FILTER_VALIDATE_BOOLEAN], - 'h' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'f' => ['filter' => FILTER_VALIDATE_INT], + 'mtu' => ['filter' => FILTER_VALIDATE_INT], + 'D' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], + 'S' => ['filter' => FILTER_VALIDATE_IP], + 'e' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^[a-z\d]+$/"]], + 'g' => ['filter' => FILTER_VALIDATE_INT], + 'source-port' => ['filter' => FILTER_VALIDATE_INT], + 'data-length' => ['filter' => FILTER_VALIDATE_INT], + 'ip-options' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^\"(R|T|U|L [\da-zA-Z-.: ]+|S [\da-zA-Z-.: ]+|\\\\x[\da-fA-F]{1,2}(\*[\d]+)?|\\\\[0-2]?[\d]{1,2}(\*[\d]+)?)\"$/"]], + 'ttl' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 255]], + 'spoof-mac' => ['filter' => FILTER_VALIDATE_MAC], + 'badsum' => ['filter' => FILTER_VALIDATE_BOOLEAN], + + //'6' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'A' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'send-eth' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'send-ip' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'privileged' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'V' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'unprivileged' => ['filter' => FILTER_VALIDATE_BOOLEAN], + 'h' => ['filter' => FILTER_VALIDATE_BOOLEAN], ], false) ?: $DEFAULT_ARGS; diff --git a/index.php b/index.php index 9a55bc2..fada129 100755 --- a/index.php +++ b/index.php @@ -25,40 +25,41 @@ include_once 'filter_inputs.php';