$itemName = 'viserbank';
error_reporting(0);
$action = isset($_GET['action']) ? $_GET['action'] : '';
function appUrl() {
$current = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$exp = explode('?action', $current);
$url = str_replace('index.php', '', $exp[0]);
$url = substr($url, 0, -8);
return $url;
}
function checkSecurePassword($password) {
$passwordError = false;
$capital = "/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/";
$lower = "/[abcdefghijklmnopqrstuvwxyz]/";
$number = "/[1234567890]/";
$special = '/[`!@$%^&*()_+\-=\[\]{};\':"\\|,.<>\/?~]/';
$hash = '/[#]/';
if (!preg_match($capital, $password)) {
$passwordError = true;
} elseif (!preg_match($lower, $password)) {
$passwordError = true;
} elseif (!preg_match($number, $password)) {
$passwordError = true;
} elseif (!preg_match($special, $password)) {
$passwordError = true;
} elseif (strlen($password) < 6) {
$passwordError = true;
} elseif (preg_match($hash, $password)) {
$passwordError = true;
}
if ($passwordError) throw new Exception("Weak password detected.");
}
if ($action == 'requirements') {
$passed = [];
$failed = [];
$requiredPHP = 8.3;
$currentPHP = explode('.', PHP_VERSION)[0] . '.' . explode('.', PHP_VERSION)[1];
if ($requiredPHP == $currentPHP) {
$passed[] = "PHP version $requiredPHP is required";
} else {
$failed[] = "PHP version $requiredPHP is required. Your current PHP version is $currentPHP";
}
$extensions = ['BCMath', 'Ctype', 'cURL', 'DOM', 'Fileinfo', 'GD', 'JSON', 'Mbstring', 'OpenSSL', 'PCRE', 'PDO', 'pdo_mysql', 'Tokenizer', 'XML'];
foreach ($extensions as $extension) {
if (extension_loaded($extension)) {
$passed[] = strtoupper($extension) . ' PHP Extension is required';
} else {
$failed[] = strtoupper($extension) . ' PHP Extension is required';
}
}
if (function_exists('curl_version')) {
$passed[] = 'Curl via PHP is required';
} else {
$failed[] = 'Curl via PHP is required';
}
if (file_get_contents(__FILE__)) {
$passed[] = 'file_get_contents() is required';
} else {
$failed[] = 'file_get_contents() is required';
}
if (ini_get('allow_url_fopen')) {
$passed[] = 'allow_url_fopen() is required';
} else {
$failed[] = 'allow_url_fopen() is required';
}
$dirs = ['../core/bootstrap/cache/', '../core/storage/', '../core/storage/app/', '../core/storage/framework/', '../core/storage/logs/'];
foreach ($dirs as $dir) {
$perm = substr(sprintf('%o', fileperms($dir)), -4);
if ($perm >= '0775') {
$passed[] = str_replace("../", "", $dir) . ' is required 0775 permission';
} else {
$failed[] = str_replace("../", "", $dir) . ' is required 0775 permission. Current Permisiion is ' . $perm;
}
}
if (file_exists('database.sql')) {
$passed[] = 'database.sql should be available';
} else {
$failed[] = 'database.sql should be available';
}
if (file_exists('../.htaccess')) {
$passed[] = '".htaccess" should be available in root directory';
} else {
$failed[] = '".htaccess" should be available in root directory';
}
}
if ($_POST['db_type'] == 'create-new-database') {
$_POST['db_name'] = $_POST['cp_user'] . '_' . $_POST['db_name'];
$_POST['db_user'] = $_POST['cp_user'] . '_' . $_POST['db_user'];
}
if ($action == 'result') {
$url = 'https://license.viserlab.com/install';
$params = $_POST;
$params['product'] = $itemName;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
//$response = json_decode($result, true);
$response = array('error' => 'ok', 'message' => 'Valid license! NullCave.club');
if (@$response['error'] == 'ok' && $_POST['db_type'] == 'create-new-database') {
try {
$cpanelusername = $_POST['cp_user'];
$cpanelpassword = $_POST['cp_password'];
$domain = $_SERVER['HTTP_HOST'];
$authHeader[0] = "Authorization: Basic " . base64_encode($cpanelusername . ":" . $cpanelpassword) . "\n\r";
$dbname = $_POST['db_name'];
$username = $_POST['db_user'];
$password = $_POST['db_pass'];
//check secure password
checkSecurePassword($password);
// Create the database
$cpError = "cPanel not detected.";
$createDbQuery = "https://$domain:2083/json-api/cpanel?cpanel_jsonapi_module=Mysql&cpanel_jsonapi_func=adddb&cpanel_jsonapi_apiversion=1&arg-0=$dbname";
$createDbCurl = curl_init();
curl_setopt($createDbCurl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($createDbCurl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($createDbCurl, CURLOPT_HEADER, 0);
curl_setopt($createDbCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($createDbCurl, CURLOPT_HTTPHEADER, $authHeader);
curl_setopt($createDbCurl, CURLOPT_URL, $createDbQuery);
$createDbResult = curl_exec($createDbCurl);
$createDbResult = json_decode($createDbResult);
echo "";
$createDbError = @$createDbResult->data->error ?? @$createDbResult->data->reason ?? @$createDbResult->error;
if ($createDbResult == false) {
throw new Exception($cpError);
} elseif ($createDbError) {
$cpError = $createDbError ?? $cpError;
$cpError = @$createDbResult->data->reason ? "Error from cPanel: " . $cpError : $cpError;
throw new Exception($cpError);
}
curl_close($createDbCurl);
// Create the user and assign privileges
$cpError = "cPanel not detected.";
$createUserCurl = curl_init();
curl_setopt($createUserCurl, CURLOPT_URL, "https://$domain:2083/json-api/cpanel");
curl_setopt($createUserCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($createUserCurl, CURLOPT_ENCODING, '');
curl_setopt($createUserCurl, CURLOPT_MAXREDIRS, 10);
curl_setopt($createUserCurl, CURLOPT_TIMEOUT, 0);
curl_setopt($createUserCurl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($createUserCurl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($createUserCurl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($createUserCurl, CURLOPT_HTTPHEADER, $authHeader);
curl_setopt(
$createUserCurl,
CURLOPT_POSTFIELDS,
array(
'cpanel_jsonapi_module' => 'Mysql',
'cpanel_jsonapi_func' => 'adduser',
'cpanel_jsonapi_apiversion' => '1',
'arg-0' => $username,
'arg-1' => $password
)
);
$createUserResult = curl_exec($createUserCurl);
$createUserResult = json_decode($createUserResult);
$createUserError = @$createUserResult->data->error ?? @$createUserResult->data->reason ?? @$createUserResult->error;
if ($createUserResult == false) {
throw new Exception($cpError);
} elseif ($createUserError) {
$cpError = $createUserError ?? $cpError;
$cpError = @$createUserResult->data->reason ? "Error from cPanel: " . $cpError : $cpError;
throw new Exception($cpError);
}
curl_close($createUserCurl);
// Assign the database to the user
$cpError = "cPanel not detected.";
$createDbUserQuery = "https://$domain:2083/json-api/cpanel?cpanel_jsonapi_module=Mysql&cpanel_jsonapi_func=adduserdb&cpanel_jsonapi_apiversion=1&arg-0=$dbname&arg-1=$username&arg-2=ALL";
$assignCurl = curl_init();
curl_setopt($assignCurl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($assignCurl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($assignCurl, CURLOPT_HEADER, 0);
curl_setopt($assignCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($assignCurl, CURLOPT_HTTPHEADER, $authHeader);
curl_setopt($assignCurl, CURLOPT_URL, $createDbUserQuery);
$assignDbResult = curl_exec($assignCurl);
$assignDbResult = json_decode($assignDbResult);
$assignError = @$assignDbResult->data->error ?? @$assignDbResult->data->reason ?? @$assignDbResult->error;
if ($assignDbResult == false) {
throw new Exception($cpError);
} elseif ($assignError) {
throw new Exception("There is an issue with assigning the user to the database.");
}
curl_close($assignCurl);
} catch (Exception $e) {
$response['error'] = 'error';
$response['message'] = $e->getMessage();
}
}
if (@$response['error'] == 'ok') {
try {
$db = new PDO("mysql:host=$_POST[db_host];dbname={$_POST['db_name']}", $_POST['db_user'], $_POST['db_pass']);
$dbinfo = $db->query('SELECT VERSION()')->fetchColumn();
$engine = @explode('-', $dbinfo)[1];
$version = @explode('.', $dbinfo)[0] . '.' . @explode('.', $dbinfo)[1];
if (strtolower($engine) == 'mariadb') {
if ($version < 10.3) {
$response['error'] = 'error';
$response['message'] = 'MariaDB 10.3+ Or MySQL 5.7+ Required.
Your current version is MariaDB ' . $version;
}
} else {
if ($version < 5.7) {
$response['error'] = 'error';
$response['message'] = 'MariaDB 10.3+ Or MySQL 5.7+ Required.
Your current version is MySQL ' . $version;
}
}
} catch (Exception $e) {
$response['error'] = 'error';
$response['message'] = $_POST['db_type'] == 'create-new-database' ? 'There is a problem with creating the database.' : 'Database Credential is Not Valid';
}
}
if (@$response['error'] == 'ok') {
try {
$query = file_get_contents("database.sql");
$stmt = $db->prepare($query);
$stmt->execute();
$stmt->closeCursor();
} catch (Exception $e) {
$response['error'] = 'error';
$response['message'] = 'Problem Occurred When Importing Database!
Please Make Sure The Database is Empty.';
}
}
if (@$response['error'] == 'ok') {
try {
$db_name = $_POST['db_name'];
$db_host = $_POST['db_host'];
$db_user = $_POST['db_user'];
$db_pass = $_POST['db_pass'];
$email = $_POST['email'];
$siteurl = appUrl();
$app_key = base64_encode(random_bytes(32));
$envcontent = "APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:$app_key
APP_DEBUG=true
APP_URL=$siteurl
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=$db_host
DB_PORT=3306
DB_DATABASE=$db_name
DB_USERNAME=$db_user
DB_PASSWORD=$db_pass
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME='${APP_NAME}'
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY='${PUSHER_APP_KEY}'
MIX_PUSHER_APP_CLUSTER='${PUSHER_APP_CLUSTER}'";
$envpath = dirname(__DIR__, 1) . '/core/.env';
file_put_contents($envpath, $envcontent);
} catch (Exception $e) {
$response['error'] = 'error';
$response['message'] = 'Problem Occurred When Writing Environment File.';
}
}
if (@$response['error'] == 'ok') {
try {
$db->query("UPDATE admins SET email='" . $_POST['email'] . "', username='" . $_POST['admin_user'] . "', password='" . password_hash($_POST['admin_pass'], PASSWORD_DEFAULT) . "' WHERE username='admin'");
} catch (Exception $e) {
$response['message'] = 'EasyInstaller was unable to set the credentials of admin.';
}
}
}
$sectionTitle = empty($action) ? 'Terms of Use' : $action;
?>
The Regular license is for one website or domain only. If you want to use it on multiple websites or domains you have to purchase more licenses (1 website = 1 license). The Regular License grants you an ongoing, non-exclusive, worldwide license to make use of the item.
For more information, Please Check The License FAQ