безопасность — Как я могу динамически вызывать опасные функции PHP для разработки концепции?

Я делаю тест на проникновение в «белый ящик», и мое незнакомство со спецификой PHP затрудняет разработку концепции. Вот урезанный пример функции, которую я считаю опасной. (Существует некоторая проверка и обработка ошибок, которые я удалил для простоты.)

function makeCall($myClass, $method, $args){
$theClass = new $myClass();
return $theClass->$method($args);
}

Эта проблема заключается в том, что потенциальные злоумышленники могут контролировать все параметры через что-то вроде site.com/program.php/class/method?args=args, Нормальное использование makeCall является то, что некоторый класс и метод, сделанные компанией, передаются в функцию в виде строк. Я могу звонить другим классам, которые явно не предназначены для вызова, поэтому здесь определенно есть какая-то проблема.

Моя цель — использовать exec для $method param (или что-то подобное), чтобы продемонстрировать, насколько опасен этот код — целью является удаленное выполнение кода. Я не могу за свою жизнь понять, что такое «класс» exec (или аналогичный) будет внутри (или, если это даже правильный вопрос). Есть ли встроенный класс с опасным методом, который я мог бы использовать, чтобы доказать свою точку зрения?

Например, в C # я мог бы сделать что-то вроде System.IO.File для класса, и ReadAllLines для метода, с аргументами, являющимися некоторым конфиденциальным файлом на сервере. Я совершенно готов принять ответ «это не сработает для любых общих методов PHP», но я хочу быть уверен.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]