whoami7 - Manager
:
/
data
/
vhosts
/
licenciamiento
/
www
/
Upload File:
files >> /data/vhosts/licenciamiento/www/generar_hash.php
<?php // Conexion a la base de datos require_once 'conecta.php'; // Recibir los datos y almacenarlos en variables $usuario = $_POST['usuario']; $clave = $_POST['clave']; $mbsn = $_POST['mbsn']; // // Datos para test // $usuario = "roniten@gmail.com"; // $clave = "1605550fc92b358046022d62614d480b61f398922b3abe5faae6a1cb99e0e652"; // $mbsn = "PF12R9DF"; $hoy = date("Y-m-d"); $hora = date("H:i:s"); $mail_administrador = "proyectos@ncdesarrollos.es"; $mail_sender = "noreplay@sd-115179.dedibox.fr"; $motivo = ""; // Obtener ip del cliente $ip = $_SERVER['REMOTE_ADDR']; // Guardar el intento de conexión en la base de datos $inserta_conexion = "INSERT INTO conexiones_usuario (usuario, mbsn, ip, dia, hora, resultado) VALUES ('$usuario', '$mbsn', '$ip', '$hoy', '$hora', "; // Comprobar si existe el usuario en la base de datos $consulta = "SELECT * FROM usuario WHERE usuario = '$usuario'"; $resultado = $mysqli->query($consulta); $filas = $resultado->num_rows; if ($filas > 0) { $fila = $resultado->fetch_assoc(); // Consultar la sal de la base de datos $sal = explode(":", $fila['clave']); $sal = $sal[1]; // Generar el hash de la clave recibida con la sal $clave = hash('sha256', $clave . $sal) . ":" . $sal; // Comprobar si la clave es correcta if ($clave == $fila['clave']) { // Comprobar la licencia $consulta = "SELECT T1.*, T2.duracion FROM licencia AS T1 LEFT JOIN tipo_licencia AS T2 ON T1.id_tipo_licencia = T2.id WHERE T1.id IN (SELECT id_licencia FROM usuario_licencia WHERE id_usuario = '" . $fila['id'] . "') AND T1.mbsn IS NULL AND T1.token IS NULL AND (T1.fecha_fin >= '" . date('Y-m-d') . "' OR T1.fecha_fin IS NULL) AND T1.id_estado = 1;"; $resultado = $mysqli->query($consulta); if ($resultado->num_rows > 0) { $licencia = $resultado->fetch_assoc(); $token = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 32); $token_cifrado = hash('sha256', $token . $mbsn); // Almacenar el token en la base de datos $insercion = "UPDATE licencia SET mbsn = '$mbsn', token = '$token_cifrado'"; if ($licencia['fecha_fin'] == NULL) { $insercion .= ", fecha_fin = '" . date('Y-m-d', strtotime(date('Y-m-d') . ' + ' . $licencia['duracion'] . ' months')) . "'"; } $insercion .= " WHERE id = " . $licencia['id'] . ";"; $resultado = $mysqli->query($insercion); // Si la actualización se ha realizado correctamente, mostrar el token if ($resultado) { $inserta_conexion .= "'1');"; echo $token; } else { $inserta_conexion .= "'0');"; echo "Acceso denegado"; $motivo = "Error al actualizar la licencia"; } } else { $inserta_conexion .= "'0');"; echo "Acceso denegado"; $motivo = "No se ha encontrado una licencia válida"; } } else { $inserta_conexion .= "'0');"; echo "Acceso denegado"; $motivo = "Clave incorrecta"; } } else { $inserta_conexion .= "'0');"; echo "Acceso denegado"; $motivo = "Usuario no encontrado"; } // Si $insercion termina en "'0');" se enviará un email al administrador avisando del intento de acceso no autorizado if (substr($inserta_conexion, -5) == "'0');") { // Enviar email para notificar que se ha producido un intento de acceso no autorizado al administrador $asunto = "Intento de generación de token no autorizado"; $mensaje = "Se ha producido un intento de generación de token con los siguientes datos:\n\n"; $mensaje .= "Usuario: $usuario\n"; $mensaje .= "MBSN: $mbsn\n"; $mensaje .= "IP: $ip\n"; $mensaje .= "Fecha: $hoy\n"; $mensaje .= "Hora: $hora\n"; $mensaje .= "Resultado: Acceso denegado\n"; $mensaje .= "$motivo"; mail($mail_administrador, $asunto, $mensaje, "From: $mail_sender"); } // Almacenar el resultado en la base de datos $mysqli->query($inserta_conexion); // Cerrar la conexión $mysqli->close(); ?>
Copyright ©2021 || Defacer Indonesia