Пример #1
0
                 } else {
                     $display .= '<option value=\\"' . $t->id . '\\"' . $selected . '>' . $ident . str_replace(array("&", '"'), array("&amp;", "&quot;"), $t->title) . '</option>';
                 }
                 $prev_level = $t->nlevel;
             }
         }
         $display .= '</select></div>';
         // Show results to user.
         echo '[{"error":"no" , "output" : "' . $display . '"}]';
     }
     break;
     //Insert into DB the items the user has selected
 //Insert into DB the items the user has selected
 case "import_items":
     //decrypt and retreive data in JSON format
     $dataReceived = Encryption\Crypt\aesctr::decrypt($_POST['data'], $_SESSION['key'], 256);
     //Get some info about personal folder
     if ($_POST['folder'] == $_SESSION['user_id']) {
         $personalFolder = 1;
     } else {
         $personalFolder = 0;
     }
     $data_fld = DB::queryFirstRow("SELECT title FROM " . prefix_table("nested_tree") . " WHERE id = %i", intval($_POST['folder']));
     //Prepare variables
     $listItems = htmlspecialchars_decode($dataReceived);
     $list = "";
     foreach (explode('@_#sep#_@', mysqli_escape_string($link, stripslashes($listItems))) as $item) {
         //For each item, insert into DB
         $item = explode('@|@', $item);
         //explode item to get all fields
         //Encryption key
Пример #2
0
     } else {
         echo 'document.getElementById("but_next").disabled = "disabled";';
         echo 'document.getElementById("res_step1").innerHTML = "Correct the shown ' . 'errors and click on button Launch to refresh";';
         //echo 'gauge.modify($("pbar"),{values:[0.25,1]});';
     }
     echo 'document.getElementById("res_step1").innerHTML = "' . $txt . '";';
     echo 'document.getElementById("loader").style.display = "none";';
     break;
     #==========================
 #==========================
 case "step2":
     $res = "";
     //decrypt the password
     // AES Counter Mode implementation
     require_once '../includes/libraries/Encryption/Crypt/aesctr.php';
     $dbPassword = Encryption\Crypt\aesctr::decrypt($_POST['db_password'], "cpm", 128);
     // connexion
     if (mysqli_connect($_POST['db_host'], $_POST['db_login'], $dbPassword, $_POST['db_bdd'], $_POST['db_port'])) {
         $dbTmp = mysqli_connect($_POST['db_host'], $_POST['db_login'], $dbPassword, $_POST['db_bdd'], $_POST['db_port']);
         //echo 'gauge.modify($("pbar"),{values:[0.50,1]});';
         $res = "Connection is successful";
         echo 'document.getElementById("but_next").disabled = "";';
         //What CPM version
         if (@mysqli_query($dbTmp, "SELECT valeur FROM " . $_POST['tbl_prefix'] . "misc\n                    WHERE type='admin' AND intitule = 'cpassman_version'")) {
             $tmpResult = mysqli_query($dbTmp, "SELECT valeur FROM " . $_POST['tbl_prefix'] . "misc\n                        WHERE type='admin' AND intitule = 'cpassman_version'");
             $cpmVersion = mysqli_fetch_row($tmpResult);
             echo 'document.getElementById("actual_cpm_version").value = "' . $cpmVersion[0] . '";';
         } else {
             echo 'document.getElementById("actual_cpm_version").value = "0";';
         }
         //Get some infos from DB
Пример #3
0
 case "admin_action_backup_decrypt":
     //get backups infos
     $rows = DB::query("SELECT * FROM " . prefix_table("misc") . " WHERE type = %s", "settings");
     foreach ($rows as $record) {
         $settings[$record['intitule']] = $record['valeur'];
     }
     //read file
     $return = "";
     $Fnm = $settings['bck_script_path'] . '/' . $_POST['option'] . '.sql';
     if (file_exists($Fnm)) {
         $inF = fopen($Fnm, "r");
         while (!feof($inF)) {
             $return .= fgets($inF, 4096);
         }
         fclose($inF);
         $return = Encryption\Crypt\aesctr::decrypt($return, $settings['bck_script_key'], 256);
         //save the file
         $handle = fopen($settings['bck_script_path'] . '/' . $_POST['option'] . '_DECRYPTED' . '.sql', 'w+');
         fwrite($handle, $return);
         fclose($handle);
     }
     break;
     /*
      * Change SALT Key START
      */
 /*
  * Change SALT Key START
  */
 case "admin_action_change_salt_key___start":
     $error = "";
     require_once 'main.functions.php';
Пример #4
0
                     }
                 }
             }
         }
     }
     mysqli_close($dbTmp);
     // Destroy session without writing to disk
     define('NODESTROY_SESSION', 'true');
     session_destroy();
     break;
 case "step_7":
     //decrypt
     require_once '../includes/libraries/Encryption/Crypt/aesctr.php';
     // AES Counter Mode implementation
     $activity = Encryption\Crypt\aesctr::decrypt($_POST['activity'], "cpm", 128);
     $task = Encryption\Crypt\aesctr::decrypt($_POST['task'], "cpm", 128);
     // launch
     $dbTmp = @mysqli_connect($_SESSION['db_host'], $_SESSION['db_login'], $_SESSION['db_pw'], $_SESSION['db_bdd'], $_SESSION['db_port']);
     if ($activity == "file") {
         if ($task == "deleteInstall") {
             function delTree($dir)
             {
                 $files = array_diff(scandir($dir), array('.', '..'));
                 foreach ($files as $file) {
                     is_dir("{$dir}/{$file}") ? delTree("{$dir}/{$file}") : unlink("{$dir}/{$file}");
                 }
                 return rmdir($dir);
             }
             $result = true;
             $errorMsg = "Cannot delete installation directory";
             if (file_exists($_SESSION['abspath'] . '/install')) {
Пример #5
0
 mysqli_query($dbTmp, "CREATE TABLE IF NOT EXISTS `" . $_SESSION['tbl_prefix'] . "export` (\n                `id` int(12) NOT NULL,\n                `label` varchar(255) NOT NULL,\n                `login` varchar(100) NOT NULL,\n                `description` text NOT NULL,\n                `pw` text NOT NULL,\n                `path` varchar(255) NOT NULL\n                ) CHARSET=utf8;");
 //CLEAN UP ITEMS TABLE
 $allowedTags = '<b><i><sup><sub><em><strong><u><br><br /><a><strike><ul>' . '<blockquote><blockquote><img><li><h1><h2><h3><h4><h5><ol><small><font>';
 $cleanRes = mysqli_query($dbTmp, "SELECT id,description FROM `" . $_SESSION['tbl_prefix'] . "items`");
 while ($cleanData = mysqli_fetch_array($cleanRes)) {
     mysqli_query($dbTmp, "UPDATE `" . $_SESSION['tbl_prefix'] . "items`\n                    SET description = '" . strip_tags($cleanData['description'], $allowedTags) . "' WHERE id = " . $cleanData['id']);
 }
 //Encrypt passwords in log_items
 $resTmp = mysqli_fetch_row(mysqli_query($dbTmp, "SELECT COUNT(*) FROM " . $pre . "misc\n                    WHERE type = 'update' AND intitule = 'encrypt_pw_in_log_items'\n                    AND valeur = 1"));
 if ($resTmp[0] == 0) {
     // AES Counter Mode implementation
     require_once '../includes/libraries/Encryption/Crypt/aesctr.php';
     $tmpRes = mysqli_query($dbTmp, "SELECT * FROM " . $pre . "log_items\n                    WHERE action = 'at_modification' AND raison LIKE 'at_pw %'");
     while ($tmpData = mysqli_fetch_array($tmpRes)) {
         $reason = explode(':', $tmpData['raison']);
         $text = Encryption\Crypt\aesctr::encrypt(trim($reason[1]), $_SESSION['encrypt_key'], 256);
     }
     mysqli_query($dbTmp, "INSERT INTO `" . $_SESSION['tbl_prefix'] . "misc`\n                    VALUES ('update', 'encrypt_pw_in_log_items',1)");
 }
 // Since 2.1.17, encrypt process is changed.
 // Previous PW need to be re-encrypted
 if (@mysqli_query($dbTmp, "SELECT valeur FROM " . $_SESSION['tbl_prefix'] . "misc\n                WHERE type='admin' AND intitule = 'encryption_protocol'")) {
     $tmpResult = mysqli_query($dbTmp, "SELECT valeur FROM " . $_SESSION['tbl_prefix'] . "misc\n                    WHERE type='admin' AND intitule = 'encryption_protocol'");
     $tmp = mysqli_fetch_row($tmpResult);
     if ($tmp[0] != "ctr") {
         //count elem
         $res = mysqli_query($dbTmp, "SELECT COUNT(*) FROM " . $_SESSION['tbl_prefix'] . "items\n                        WHERE perso = '0'");
         $data = mysqli_fetch_row($res);
         if ($data[0] > 0) {
             echo '$("#change_pw_encryption, #change_pw_encryption_progress").show();';
             echo '$("#change_pw_encryption_progress").html(' . '"Number of Passwords to re-encrypt: ' . $data[0] . '");';
Пример #6
0
function prepareExchangedData($data, $type)
{
    //Load AES
    $aes = new SplClassLoader('Encryption\\Crypt', '../includes/libraries');
    $aes->register();
    if ($type == "encode") {
        if (isset($_SESSION['settings']['encryptClientServer']) && $_SESSION['settings']['encryptClientServer'] == 0) {
            return json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
        } else {
            return Encryption\Crypt\aesctr::encrypt(json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP), $_SESSION['key'], 256);
        }
    } elseif ($type == "decode") {
        if (isset($_SESSION['settings']['encryptClientServer']) && $_SESSION['settings']['encryptClientServer'] == 0) {
            return json_decode($data, true);
        } else {
            return json_decode(Encryption\Crypt\aesctr::decrypt($data, $_SESSION['key'], 256), true);
        }
    }
}
Пример #7
0
function prepareExchangedData($data, $type)
{
    if ($type == "encode") {
        if (isset($_SESSION['settings']['encryptClientServer']) && $_SESSION['settings']['encryptClientServer'] == 0) {
            return json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
        } else {
            return Encryption\Crypt\aesctr::encrypt(json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP), $_SESSION['key'], 256);
        }
    } elseif ($type == "decode") {
        if (isset($_SESSION['settings']['encryptClientServer']) && $_SESSION['settings']['encryptClientServer'] == 0) {
            return json_decode($data, true);
        } else {
            return json_decode(Encryption\Crypt\aesctr::decrypt($data, $_SESSION['key'], 256), true);
        }
    }
}
Пример #8
0
     }
     break;
     /*
      * Change SALT Key
      */
 /*
  * Change SALT Key
  */
 case "admin_action_change_salt_key":
     $error = "";
     require_once 'main.functions.php';
     //put tool in maintenance.
     DB::update(prefix_table("misc"), array('valeur' => '1'), "intitule = %s AND type= %s", "maintenance_mode", "admin");
     //log
     DB::insert(prefix_table("log_system"), array('type' => 'system', 'date' => time(), 'label' => 'change_salt_key', 'qui' => $_SESSION['user_id']));
     $new_salt_key = htmlspecialchars_decode(Encryption\Crypt\aesctr::decrypt($_POST['option'], SALT, 256));
     //change all passwords in DB
     $rows = DB::query("SELECT id, pw, pw_iv FROM " . prefix_table("items") . " WHERE perso = %s", "0");
     foreach ($rows as $record) {
         $pw = cryption($record['pw'], SALT, $record['pw_iv'], "decrypt");
         //encrypt with new SALT
         DB::update(prefix_table("items"), array('pw' => encrypt($pw, $new_salt_key)), "id = %i", $record['id']);
     }
     //change all users password in DB
     $rows = DB::query("SELECT id, pw, pw_iv FROM " . prefix_table("users"));
     foreach ($rows as $record) {
         $pw = cryption($record['pw'], SALT, $record['pw_iv'], "decrypt");
         //encrypt with new SALT
         DB::update(prefix_table("users"), array('pw' => encrypt($pw, $new_salt_key)), "id = %i", $record['id']);
     }
     // get path to sk.php
Пример #9
0
                     $f->title = $_SESSION['login'];
                 }
                 $arrOutput[$f->id] = $f->title;
             }
         }
     }
     echo json_encode($arrOutput, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
     break;
     /**
      * Store the personal saltkey
      */
 /**
  * Store the personal saltkey
  */
 case "store_personal_saltkey":
     $dataReceived = json_decode(Encryption\Crypt\aesctr::decrypt(urldecode($_POST['sk']), $_SESSION['key'], 256), true);
     if ($dataReceived['psk'] != "**************************") {
         $_SESSION['my_sk'] = str_replace(" ", "+", urldecode($dataReceived['psk']));
         setcookie("TeamPass_PFSK_" . md5($_SESSION['user_id']), encrypt($_SESSION['my_sk'], ""), time() + 60 * 60 * 24 * $_SESSION['settings']['personal_saltkey_cookie_duration'], '/');
     }
     break;
     /**
      * Change the personal saltkey
      */
 /**
  * Change the personal saltkey
  */
 case "change_personal_saltkey":
     //decrypt and retreive data in JSON format
     $dataReceived = prepareExchangedData($_POST['data'], "decode");
     //Prepare variables