用序列化的字符串数组反序列化漏洞?

时间:2019-06-08 18:10:05

标签: php serialization exploit

想象一下,有一个带有给定(简化)代码的框架:

$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";}",无法用于利用脚本。

0 个答案:

没有答案