Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
local
/
ei
/
old
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
ei.php
2.49 KB
-rw-r--r--
2025-01-24 10:25:21
Edit
Del
Editing: ei.php
(2.49 KB)
Path: /usr/local/ei/old/ei.php
Back
<?php define('CONFIG_FILE', 'ei_config.php'); define('MYSQL_CONFIG', 'ei_my.cnf'); if (!($config = file_get_contents(CONFIG_FILE))) exit("Can't read " . CONFIG_FILES . "\n"); if (!($config = json_decode($config, true))) exit("Can't decode " . CONFIG_FILE . "\n"); $prefix = $config['prefix']; $suffix = $config['suffix']; $params = $config['params']; $db = $config['sql']; foreach ($config['files'] as $file) { replace_params($file, $prefix, $suffix, $params, $db); } if (!empty($config['sql'])) { $database = $config['sql']['dbname']; $username = $config['sql']['dbuser']; $password = $config['sql']['dbpass']; file_put_contents(MYSQL_CONFIG, <<<MYSQL [client] user=$username password=$password MYSQL); foreach ($config['sql']['files'] as $sql_file) { replace_params($sql_file, $prefix, $suffix, $params, $db); $cmd = sprintf("mysql --defaults-file=%s %s < %s 2>&1", MYSQL_CONFIG, $database, $sql_file); $output = []; $ret = 0; exec($cmd, $output, $ret); if ($ret !== 0) { echo "mysql dump insert failure\n"; } else { //unlink(MYSQL_CONFIG); //unlink($sql_file); } } } //unlink(CONFIG_FILE); function replace_params($file, $prefix, $suffix, $params, $db) { $file = './' . $file; echo "replacing $file\n"; if (!($content = file_get_contents($file))) { echo "Can't read $file\n"; return false; } $vars = []; foreach ($db as $k => $v) { // db details if (is_string($v)) $params[$k] = ['value' => $v]; } //print_r($params); //replace vars in vars foreach ($params as $k1 => $v1) { foreach ($params as $k2 => $v2) { $params[$k2]['value'] = str_replace($prefix . $k1 . $suffix, $v1['value'], $params[$k2]['value']); } } //print_r($params); //calculate values foreach ($params as $k => $v) { $vars[$k] = escape(@$v['escape'], param($k, $v)); } //print_r($vars); foreach ($vars as $k => $v) $content = str_replace($prefix . $k . $suffix, $v, $content); file_put_contents($file, $content); } function param($k, $v) { $options = !empty($v['options']) ? $v['options'] : []; $ret = $v['value']; foreach ($options as $option) { switch ($option) { case 'eval': $ret = eval($ret); break; case 'md5': $ret = md5($v['value']); break; //case 'hidden': //default: // $ret = $v['value']; } } return $ret; } function escape_single_quotes($value) { return addcslashes($value, "'"); } function escape_double_quotes($value) { return addcslashes($value, '"'); } function escape($func, $value) { return $func ? $func($value) : $value; }