Представьте, что у вас есть структура с заданным (упрощенным) кодом:
$serialized = serialize($_POST);
// ... save $serialized to database
$unserialized = unserialize($serialized);
foreach ($unserialized as $key => $value) {
echo $key . ': ' . $value . PHP_EOL;
}
Злоумышленник может контролировать одну пару ключ / значение $ _POST, например,
$_POST['exploit'] = "Exploit Value";
Злоумышленникможно только установить значение в строку.Будет ли PHP Object Injection все еще возможен для злоумышленника?Если да, то как?
Я пытался установить значение, подобное этому
$_POST['exploit'] = 'O:17:"foo\data\Example1":1:{s:10:"cache_file";s:4:"test";}';
, но в итоге оно сериализовалось как s:58:"O:17:"foo\data\Example1":1:{s:10:"cache_file";s:4:"test";}"
, которое нельзя использовать для использования сценария.