Возможно ли взломать сайт через $f();

Статус
В этой теме нельзя размещать новые ответы.

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Вообщем есть скрипт в начале которого написано
$f = $_POST["f"];

$f();
ну и дальше перечень функций.
Вопрос безопасно ли это? Возможно ли передать какое то странное названия функции которая навредит сайту?
 
Вообщем есть скрипт в начале которого написано
$f = $_POST["f"];

$f();
ну и дальше перечень функций.
Вопрос безопасно ли это? Возможно ли передать какое то странное названия функции которая навредит сайту?
Вы бы привели код полностью, а так сложно сказать что там дальше происходит. В любом случае, все данные, которые приходят от пользователя, нужно безоговорочно проверять.
В общем случае, алгоритм такой:
1. Результаты POST очищаем от пробелов на конце с помощью trim()
2. Если включены магические кавычки, удаляем слэши с помощью stripslashes().
3. Если есть какие-то условия к поступающим данным, делаем проверку.
4. Перед сохранением в базу все данные экранируем средствами PDO или mysql_real_escape_string и кавычками

Соблюдая эти нехитрые правила можно обезопасить свой скрипт от уязвимостей.
 
Как минимум можно будет узнать путь к файлу, в котором находится этот вызов. Так же можно будет запустить ЛЮБУЮ существующую функцию. Как она отработает, это уже другой вопрос. В общем, вариант не приемлем. Проверяйте имя функции на вхождение в какую-то область имен.
 
Заливка php-шелла $' через phpinfo + LFI - Для просмотра ссылки Войди или Зарегистрируйся и это еще не самое плохое, что можно сделать :)
Ответ однозначный - данный вид исполнения кода не безопасный!
 
Не пойму зачем latteo удалил мой предыдущий пост, ведь в данном случае эта уязвимость не будет работать потому что
Для реализации атаки нам обязательно нужен рабочий локальный инклуд. Без него никак не обойтись.
В данном же случае можно вызвать безобидный script.php?f=phpinfo, причем любую критичную системную функцию ты никак не вызовешь без параметров, не только инклуд! Тут просто страх, вдруг кто-то че придумает и взломает, а реально как? Тема не раскрыта.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху