是否有可能利用PHP';是否只使用内置类来取消序列化?
我使用的是PHP7.3。是否可以仅使用来 似乎内置类已经在本地实现了一些(最有可能是序列化/非序列化)。可使用以下代码进行验证:是否有可能利用PHP';是否只使用内置类来取消序列化?,php,class,serialization,built-in,exploit,Php,Class,Serialization,Built In,Exploit,我使用的是PHP7.3。是否可以仅使用来 似乎内置类已经在本地实现了一些(最有可能是序列化/非序列化)。可使用以下代码进行验证: <?php $classes = get_declared_classes(); sort($classes); // __autoload is deprecated $magic_methods = ["__construct", "__destruct", "__call", "__callStatic", "__get", "__set", "_
<?php
$classes = get_declared_classes();
sort($classes);
// __autoload is deprecated
$magic_methods = ["__construct", "__destruct", "__call",
"__callStatic", "__get", "__set", "__isset", "__unset",
"__sleep", "__wakeup", "__toString", "__invoke",
"__set_state", "__clone", "__debugInfo"
];
$classes_test_magic = [];
$classes_test_magic["className"] = $magic_methods;
foreach ($classes as $className) {
foreach ($magic_methods as $magicMethod) {
if (method_exists($className, $magicMethod)) {
$classes_test_magic[$className][] = 1;
} else {
$classes_test_magic[$className][] = 0;
}
}
}
header("Content-Type: text/csv");
header("Content-Disposition: attachment;filename=builtinClassesMagicMethods.csv");
$fp = fopen("php://output", "w");
foreach ($classes_test_magic as $className => $methodsStatus) {
fputcsv($fp, array_merge([$className], $methodsStatus));
}
fclose($fp);
您可以将这些神奇的方法添加到您自己的任何自定义类中。它们是在课堂生命周期的某些特定时刻触发的事件。这些方法不一定用于序列化。@Musa请下次仔细阅读我的问题。我不是在问通常的非序列化利用。您可以将这些神奇的方法添加到您自己的任何自定义类中。它们是在课堂生命周期的某些特定时刻触发的事件。这些方法不一定用于序列化。@Musa请下次仔细阅读我的问题。我不是在问通常的非工业化剥削。