Linux ubuntu22 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64
nginx/1.18.0
: 128.199.27.159 | : 216.73.216.159
Cant Read [ /etc/named.conf ]
8.1.31
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 /
phpmyadmin /
libraries /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
Charsets
[ DIR ]
drwxr-xr-x
Command
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
ConfigStorage
[ 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
Exceptions
[ DIR ]
drwxr-xr-x
Export
[ DIR ]
drwxr-xr-x
Gis
[ DIR ]
drwxr-xr-x
Html
[ DIR ]
drwxr-xr-x
Http
[ 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
Server
[ DIR ]
drwxr-xr-x
Setup
[ DIR ]
drwxr-xr-x
Table
[ DIR ]
drwxr-xr-x
Twig
[ DIR ]
drwxr-xr-x
Utils
[ DIR ]
drwxr-xr-x
WebAuthn
[ DIR ]
drwxr-xr-x
Advisor.php
12.32
KB
-rw-r--r--
Bookmark.php
9.19
KB
-rw-r--r--
BrowseForeigners.php
10.63
KB
-rw-r--r--
Cache.php
1.5
KB
-rw-r--r--
Charsets.php
6.82
KB
-rw-r--r--
CheckUserPrivileges.php
11.3
KB
-rw-r--r--
Common.php
19.4
KB
-rw-r--r--
Config.php
41.65
KB
-rw-r--r--
Console.php
3.25
KB
-rw-r--r--
Core.php
28.91
KB
-rw-r--r--
CreateAddField.php
15.83
KB
-rw-r--r--
DatabaseInterface.php
71.73
KB
-rw-r--r--
DbTableExists.php
2.86
KB
-rw-r--r--
Encoding.php
8.41
KB
-rw-r--r--
Error.php
13.63
KB
-rw-r--r--
ErrorHandler.php
18.63
KB
-rw-r--r--
ErrorReport.php
8.99
KB
-rw-r--r--
Export.php
45.7
KB
-rw-r--r--
FieldMetadata.php
11.11
KB
-rw-r--r--
File.php
19.75
KB
-rw-r--r--
FileListing.php
2.88
KB
-rw-r--r--
FlashMessages.php
1.22
KB
-rw-r--r--
Font.php
5.58
KB
-rw-r--r--
Footer.php
8.06
KB
-rw-r--r--
Git.php
18
KB
-rw-r--r--
Header.php
20
KB
-rw-r--r--
Import.php
48.72
KB
-rw-r--r--
Index.php
14.83
KB
-rw-r--r--
IndexColumn.php
4.75
KB
-rw-r--r--
InsertEdit.php
89.05
KB
-rw-r--r--
InternalRelations.php
17.31
KB
-rw-r--r--
IpAllowDeny.php
9.13
KB
-rw-r--r--
Language.php
4.47
KB
-rw-r--r--
LanguageManager.php
22.74
KB
-rw-r--r--
Linter.php
4.99
KB
-rw-r--r--
ListAbstract.php
1.67
KB
-rw-r--r--
ListDatabase.php
4.11
KB
-rw-r--r--
Logging.php
2.69
KB
-rw-r--r--
Menu.php
20.4
KB
-rw-r--r--
Message.php
18.68
KB
-rw-r--r--
Mime.php
918
B
-rw-r--r--
Normalization.php
41.53
KB
-rw-r--r--
OpenDocument.php
8.62
KB
-rw-r--r--
Operations.php
35.11
KB
-rw-r--r--
OutputBuffering.php
4.1
KB
-rw-r--r--
ParseAnalyze.php
2.34
KB
-rw-r--r--
Pdf.php
4.17
KB
-rw-r--r--
Plugins.php
21.83
KB
-rw-r--r--
Profiling.php
2.16
KB
-rw-r--r--
RecentFavoriteTable.php
11.44
KB
-rw-r--r--
Replication.php
4.81
KB
-rw-r--r--
ReplicationGui.php
21.24
KB
-rw-r--r--
ReplicationInfo.php
4.79
KB
-rw-r--r--
ResponseRenderer.php
13.5
KB
-rw-r--r--
Routing.php
6.55
KB
-rw-r--r--
Sanitize.php
11.98
KB
-rw-r--r--
SavedSearches.php
11.33
KB
-rw-r--r--
Scripts.php
3.74
KB
-rw-r--r--
Session.php
8.16
KB
-rw-r--r--
Sql.php
64.01
KB
-rw-r--r--
SqlQueryForm.php
6.74
KB
-rw-r--r--
StorageEngine.php
15.71
KB
-rw-r--r--
SystemDatabase.php
3.98
KB
-rw-r--r--
Table.php
90.33
KB
-rw-r--r--
Template.php
4.5
KB
-rw-r--r--
Theme.php
7.32
KB
-rw-r--r--
ThemeManager.php
7
KB
-rw-r--r--
Tracker.php
30.34
KB
-rw-r--r--
Tracking.php
36.11
KB
-rw-r--r--
Transformations.php
16.31
KB
-rw-r--r--
TwoFactor.php
7.49
KB
-rw-r--r--
Types.php
25.85
KB
-rw-r--r--
Url.php
10.61
KB
-rw-r--r--
UrlRedirector.php
1.74
KB
-rw-r--r--
UserPassword.php
6.86
KB
-rw-r--r--
UserPreferences.php
10.49
KB
-rw-r--r--
Util.php
86.45
KB
-rw-r--r--
Version.php
556
B
-rw-r--r--
VersionInformation.php
7.3
KB
-rw-r--r--
ZipExtension.php
10.33
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Error.php
<?php declare(strict_types=1); namespace PhpMyAdmin; use Throwable; use function array_pop; use function array_slice; use function basename; use function count; use function debug_backtrace; use function explode; use function function_exists; use function get_class; use function gettype; use function htmlspecialchars; use function implode; use function in_array; use function is_object; use function is_scalar; use function is_string; use function mb_substr; use function md5; use function realpath; use function serialize; use function str_replace; use function var_export; use const DIRECTORY_SEPARATOR; use const E_COMPILE_ERROR; use const E_COMPILE_WARNING; use const E_CORE_ERROR; use const E_CORE_WARNING; use const E_DEPRECATED; use const E_ERROR; use const E_NOTICE; use const E_PARSE; use const E_RECOVERABLE_ERROR; use const E_STRICT; use const E_USER_DEPRECATED; use const E_USER_ERROR; use const E_USER_NOTICE; use const E_USER_WARNING; use const E_WARNING; use const PATH_SEPARATOR; /** * a single error */ class Error extends Message { /** * Error types * * @var array */ public static $errortype = [ 0 => 'Internal error', E_ERROR => 'Error', E_WARNING => 'Warning', E_PARSE => 'Parsing Error', E_NOTICE => 'Notice', E_CORE_ERROR => 'Core Error', E_CORE_WARNING => 'Core Warning', E_COMPILE_ERROR => 'Compile Error', E_COMPILE_WARNING => 'Compile Warning', E_USER_ERROR => 'User Error', E_USER_WARNING => 'User Warning', E_USER_NOTICE => 'User Notice', E_STRICT => 'Runtime Notice', E_DEPRECATED => 'Deprecation Notice', E_USER_DEPRECATED => 'Deprecation Notice', E_RECOVERABLE_ERROR => 'Catchable Fatal Error', ]; /** * Error levels * * @var array */ public static $errorlevel = [ 0 => 'error', E_ERROR => 'error', E_WARNING => 'error', E_PARSE => 'error', E_NOTICE => 'notice', E_CORE_ERROR => 'error', E_CORE_WARNING => 'error', E_COMPILE_ERROR => 'error', E_COMPILE_WARNING => 'error', E_USER_ERROR => 'error', E_USER_WARNING => 'error', E_USER_NOTICE => 'notice', E_STRICT => 'notice', E_DEPRECATED => 'notice', E_USER_DEPRECATED => 'notice', E_RECOVERABLE_ERROR => 'error', ]; /** * The file in which the error occurred * * @var string */ protected $file = ''; /** * The line in which the error occurred * * @var int */ protected $line = 0; /** * Holds the backtrace for this error * * @var array */ protected $backtrace = []; /** * Hide location of errors * * @var bool */ protected $hideLocation = false; /** * @param int $errno error number * @param string $errstr error message * @param string $errfile file * @param int $errline line */ public function __construct(int $errno, string $errstr, string $errfile, int $errline) { parent::__construct(); $this->setNumber($errno); $this->setMessage($errstr, false); $this->setFile($errfile); $this->setLine($errline); // This function can be disabled in php.ini if (function_exists('debug_backtrace')) { $backtrace = @debug_backtrace(); // remove last three calls: // debug_backtrace(), handleError() and addError() $backtrace = array_slice($backtrace, 3); } else { $backtrace = []; } $this->setBacktrace($backtrace); } /** * Process backtrace to avoid path disclosures, objects and so on * * @param array $backtrace backtrace * * @return array */ public static function processBacktrace(array $backtrace): array { $result = []; $members = [ 'line', 'function', 'class', 'type', ]; foreach ($backtrace as $idx => $step) { /* Create new backtrace entry */ $result[$idx] = []; /* Make path relative */ if (isset($step['file'])) { $result[$idx]['file'] = self::relPath($step['file']); } /* Store members we want */ foreach ($members as $name) { if (! isset($step[$name])) { continue; } $result[$idx][$name] = $step[$name]; } /* Store simplified args */ if (! isset($step['args'])) { continue; } foreach ($step['args'] as $key => $arg) { $result[$idx]['args'][$key] = self::getArg($arg, $step['function']); } } return $result; } /** * Toggles location hiding * * @param bool $hide Whether to hide */ public function setHideLocation(bool $hide): void { $this->hideLocation = $hide; } /** * sets PhpMyAdmin\Error::$_backtrace * * We don't store full arguments to avoid wakeup or memory problems. * * @param array $backtrace backtrace */ public function setBacktrace(array $backtrace): void { $this->backtrace = self::processBacktrace($backtrace); } /** * sets PhpMyAdmin\Error::$_line * * @param int $line the line */ public function setLine(int $line): void { $this->line = $line; } /** * sets PhpMyAdmin\Error::$_file * * @param string $file the file */ public function setFile(string $file): void { $this->file = self::relPath($file); } /** * returns unique PhpMyAdmin\Error::$hash, if not exists it will be created * * @return string PhpMyAdmin\Error::$hash */ public function getHash(): string { try { $backtrace = serialize($this->getBacktrace()); } catch (Throwable $e) { $backtrace = ''; } if ($this->hash === null) { $this->hash = md5( $this->getNumber() . $this->getMessage() . $this->getFile() . $this->getLine() . $backtrace ); } return $this->hash; } /** * returns PhpMyAdmin\Error::$_backtrace for first $count frames * pass $count = -1 to get full backtrace. * The same can be done by not passing $count at all. * * @param int $count Number of stack frames. * * @return array PhpMyAdmin\Error::$_backtrace */ public function getBacktrace(int $count = -1): array { if ($count != -1) { return array_slice($this->backtrace, 0, $count); } return $this->backtrace; } /** * returns PhpMyAdmin\Error::$file * * @return string PhpMyAdmin\Error::$file */ public function getFile(): string { return $this->file; } /** * returns PhpMyAdmin\Error::$line * * @return int PhpMyAdmin\Error::$line */ public function getLine(): int { return $this->line; } /** * returns type of error * * @return string type of error */ public function getType(): string { return self::$errortype[$this->getNumber()]; } /** * returns level of error * * @return string level of error */ public function getLevel(): string { return self::$errorlevel[$this->getNumber()]; } /** * returns title prepared for HTML Title-Tag * * @return string HTML escaped and truncated title */ public function getHtmlTitle(): string { return htmlspecialchars( mb_substr($this->getTitle(), 0, 100) ); } /** * returns title for error */ public function getTitle(): string { return $this->getType() . ': ' . $this->getMessage(); } /** * Get HTML backtrace */ public function getBacktraceDisplay(): string { return self::formatBacktrace( $this->getBacktrace(), "<br>\n", "<br>\n" ); } /** * return formatted backtrace field * * @param array $backtrace Backtrace data * @param string $separator Arguments separator to use * @param string $lines Lines separator to use * * @return string formatted backtrace */ public static function formatBacktrace( array $backtrace, string $separator, string $lines ): string { $retval = ''; foreach ($backtrace as $step) { if (isset($step['file'], $step['line'])) { $retval .= self::relPath($step['file']) . '#' . $step['line'] . ': '; } if (isset($step['class'])) { $retval .= $step['class'] . $step['type']; } $retval .= self::getFunctionCall($step, $separator); $retval .= $lines; } return $retval; } /** * Formats function call in a backtrace * * @param array $step backtrace step * @param string $separator Arguments separator to use */ public static function getFunctionCall(array $step, string $separator): string { $retval = $step['function'] . '('; if (isset($step['args'])) { if (count($step['args']) > 1) { $retval .= $separator; foreach ($step['args'] as $arg) { $retval .= "\t"; $retval .= $arg; $retval .= ',' . $separator; } } elseif (count($step['args']) > 0) { foreach ($step['args'] as $arg) { $retval .= $arg; } } } return $retval . ')'; } /** * Get a single function argument * * if $function is one of include/require * the $arg is converted to a relative path * * @param mixed $arg argument to process * @param string $function function name */ public static function getArg($arg, string $function): string { $retval = ''; $includeFunctions = [ 'include', 'include_once', 'require', 'require_once', ]; $connectFunctions = [ 'mysql_connect', 'mysql_pconnect', 'mysqli_connect', 'mysqli_real_connect', 'connect', '_realConnect', ]; if (in_array($function, $includeFunctions)) { $retval .= self::relPath($arg); } elseif (in_array($function, $connectFunctions) && is_string($arg)) { $retval .= gettype($arg) . ' ********'; } elseif (is_scalar($arg)) { $retval .= gettype($arg) . ' ' . htmlspecialchars(var_export($arg, true)); } elseif (is_object($arg)) { $retval .= '<Class:' . get_class($arg) . '>'; } else { $retval .= gettype($arg); } return $retval; } /** * Gets the error as string of HTML */ public function getDisplay(): string { $this->isDisplayed(true); $context = 'primary'; $level = $this->getLevel(); if ($level === 'error') { $context = 'danger'; } $retval = '<div class="alert alert-' . $context . '" role="alert">'; if (! $this->isUserError()) { $retval .= '<strong>' . $this->getType() . '</strong>'; $retval .= ' in ' . $this->getFile() . '#' . $this->getLine(); $retval .= "<br>\n"; } $retval .= $this->getMessage(); if (! $this->isUserError()) { $retval .= "<br>\n"; $retval .= "<br>\n"; $retval .= "<strong>Backtrace</strong><br>\n"; $retval .= "<br>\n"; $retval .= $this->getBacktraceDisplay(); } $retval .= '</div>'; return $retval; } /** * whether this error is a user error */ public function isUserError(): bool { return $this->hideLocation || ($this->getNumber() & (E_USER_WARNING | E_USER_ERROR | E_USER_NOTICE | E_USER_DEPRECATED)); } /** * return short relative path to phpMyAdmin basedir * * prevent path disclosure in error message, * and make users feel safe to submit error reports * * @param string $path path to be shorten * * @return string shortened path */ public static function relPath(string $path): string { $dest = @realpath($path); /* Probably affected by open_basedir */ if ($dest === false) { return basename($path); } $hereParts = explode( DIRECTORY_SEPARATOR, (string) realpath(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..') ); $destParts = explode(DIRECTORY_SEPARATOR, $dest); $result = '.'; while (implode(DIRECTORY_SEPARATOR, $destParts) != implode(DIRECTORY_SEPARATOR, $hereParts)) { if (count($hereParts) > count($destParts)) { array_pop($hereParts); $result .= DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..'; } else { array_pop($destParts); } } $path = $result . str_replace(implode(DIRECTORY_SEPARATOR, $destParts), '', $dest); return str_replace(DIRECTORY_SEPARATOR . PATH_SEPARATOR, DIRECTORY_SEPARATOR, $path); } }
Close