Люди,вот такая проблема: Проник в систему,нашёл двиг,на котором крутится сайтец.
Вот функция движная,двиг не определил:
Код:
function tep_db_prepare_input($string) {
if (is_string($string)) {
return trim(stripslashes($string));
} elseif (is_array($string)) {
reset($string);
while (list($key, $value) = each($string)) {
$string[$key] = tep_db_prepare_input($value);
}
return $string;
} else {
return $string;
}
}
Она удаляет пробелы и обратные слэши,если это строка,а если это массив,то делает то же самое и для каждого элемента массива.Если это НИ то и НИ другое,то не делает НИЧЕГО,т.е. получается,что фильтрацию мы обошли(и саму функцию частично).Передаю такое:
1+order+by+1 без кавычек.Она мне выдаёт на выходе 2.Почему ? Я так понял,что он определил это как строку,но тогда почему она выполнила такое преобразование ? Пробелов-то нет,и слэшей обратных тем более.Помогите пожалуйста =_=
ЗЫ: Если передать строку в одинарных или в двойных кавычках,то тогда работает третий блок кода,но я сомневаюсь,что сервер позволит мне так играть(из-за magic_quots_gpc.Пока не проверил,но уверен,что включена).
Так... Походу,это osCommerce, Open Source E-Commerce Solutions.Не заметил я что-то )))
http://www.oscommerce.com/
Ухх,убить бы этот сайт нафиг...