Jelajahi Sumber

Hardening password checks

Serghey Rodin 7 tahun lalu
induk
melakukan
3fdee2975d
4 mengubah file dengan 6 tambahan dan 4 penghapusan
  1. 1 1
      bin/v-check-user-password
  2. 1 1
      func/main.sh
  3. 3 1
      web/api/index.php
  4. 1 1
      web/login/index.php

+ 1 - 1
bin/v-check-user-password

@@ -82,7 +82,7 @@ if [ -z "$salt" ]; then
 fi
 
 # Generating hash
-hash=$($BIN/v-generate-password-hash $method $salt <<< $password)
+hash=$($BIN/v-generate-password-hash $method $salt <<< "$password")
 if [[ -z "$hash" ]]; then
     echo "Error: password missmatch"
     echo "$date $time $user $ip failed to login" >> $VESTA/log/auth.log

+ 1 - 1
func/main.sh

@@ -273,7 +273,7 @@ is_object_value_exist() {
 is_password_valid() {
     if [[ "$password" =~ ^/tmp/ ]]; then
         if [ -f "$password" ]; then
-            password=$(head -n1 $password)
+            password="$(head -n1 $password)"
         fi
     fi
 }

+ 3 - 1
web/api/index.php

@@ -18,13 +18,15 @@ if (isset($_POST['user']) || isset($_POST['hash'])) {
         fwrite($fp, $_POST['password']."\n");
         fclose($fp);
         $v_ip_addr = escapeshellarg($_SERVER["REMOTE_ADDR"]);
-        exec(VESTA_CMD ."v-check-user-password ".$v_user." ".$v_password." '".$v_ip_addr."'",  $output, $auth_code);
+        exec(VESTA_CMD ."v-check-user-password ".$v_user." ".escapeshellarg($v_password)." '".$v_ip_addr."'",  $output, $auth_code);
         unlink($v_password);
+    /* No hash auth for security reason
     } else {
         $key = '/usr/local/vesta/data/keys/' . basename($_POST['hash']);
         if (file_exists($key) && is_file($key)) {
             $auth_code = '0';
         }
+    */
     }
 
     if ($auth_code != 0 ) {

+ 1 - 1
web/login/index.php

@@ -44,7 +44,7 @@ if (isset($_POST['user']) && isset($_POST['password'])) {
         fclose($fp);
 
         // Check user & password
-        exec(VESTA_CMD ."v-check-user-password ".$v_user." ".$v_password." ".escapeshellarg($_SERVER['REMOTE_ADDR']),  $output, $return_var);
+        exec(VESTA_CMD ."v-check-user-password ".$v_user." ".escapeshellarg($v_password)." ".escapeshellarg($_SERVER['REMOTE_ADDR']),  $output, $return_var);
         unset($output);
 
         // Remove tmp file