#!/usr/bin/env php * This will manipulate the MOST RECENT session * * Examples: * php manipulate-session.php 5 user # Change to User ID 5 * php manipulate-session.php 1 org # Change to Organization ID 1 * php manipulate-session.php 1 bank # Change to Bank ID 1 * php manipulate-session.php 1 admin # Change to Admin ID 1 */ require __DIR__.'/vendor/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php'; $app->make('Illuminate\Contracts\Console\Kernel')->bootstrap(); if ($argc < 3) { echo "Usage: php manipulate-session.php \n"; echo "\nExamples:\n"; echo " php manipulate-session.php 5 user # Change to User ID 5\n"; echo " php manipulate-session.php 1 org # Change to Organization ID 1\n"; echo " php manipulate-session.php 1 bank # Change to Bank ID 1\n"; echo " php manipulate-session.php 1 admin # Change to Admin ID 1\n"; exit(1); } $newProfileId = (int) $argv[1]; $typeArg = strtolower($argv[2]); // Map short type names to full class names $typeMap = [ 'user' => 'App\\Models\\User', 'org' => 'App\\Models\\Organization', 'organization' => 'App\\Models\\Organization', 'bank' => 'App\\Models\\Bank', 'admin' => 'App\\Models\\Admin', ]; if (!isset($typeMap[$typeArg])) { echo "ERROR: Invalid profile type '$typeArg'\n"; echo "Valid types: user, org, organization, bank, admin\n"; exit(1); } $newProfileType = $typeMap[$typeArg]; // Get the most recent session $session = DB::table('sessions') ->orderBy('last_activity', 'desc') ->first(); if (!$session) { echo "ERROR: No active session found\n"; exit(1); } echo "Found session:\n"; echo " Session ID: {$session->id}\n"; echo " User ID: {$session->user_id}\n"; echo " IP: {$session->ip_address}\n"; echo " Last Activity: " . date('Y-m-d H:i:s', $session->last_activity) . "\n"; echo "\n"; // Laravel encrypts session data, so we need to use the session manager $sessionManager = app('session')->driver(); $sessionManager->setId($session->id); $sessionManager->start(); echo "Current session data:\n"; echo " activeProfileId: " . ($sessionManager->get('activeProfileId') ?? 'NOT SET') . "\n"; echo " activeProfileType: " . ($sessionManager->get('activeProfileType') ?? 'NOT SET') . "\n"; echo "\n"; // Manipulate $sessionManager->put('activeProfileId', $newProfileId); $sessionManager->put('activeProfileType', $newProfileType); $sessionManager->save(); echo "✅ Session manipulated successfully!\n"; echo " NEW activeProfileId: $newProfileId\n"; echo " NEW activeProfileType: $newProfileType\n"; echo "\n"; echo "🔄 Now REFRESH your browser to see the changes!\n"; echo "⚠️ WARNING: This is for security testing only!\n";