Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有可能利用PHP';是否只使用内置类来取消序列化?_Php_Class_Serialization_Built In_Exploit - Fatal编程技术网

是否有可能利用PHP';是否只使用内置类来取消序列化?

是否有可能利用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", "_

我使用的是PHP7.3。是否可以仅使用

似乎内置类已经在本地实现了一些(最有可能是序列化/非序列化)。可使用以下代码进行验证:

<?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请下次仔细阅读我的问题。我不是在问通常的非工业化剥削。