Во-первых, я не пытаюсь взломать или сделать что-то незаконное.Думаю, я дам вам знать, ребята.У меня есть клиент, который хочет, чтобы я сделал некоторые изменения в его системе, когда я смотрел на него, я заметил, что НИЧЕГО не удалось избежать.Я не шучу, ничего не сбежит.Я объяснил ему, что такая система небезопасна.Затем он продолжает говорить мне, что у него была такая система в течение нескольких лет, и ничего не произошло.Мне нужно показать ему, что его система небезопасна, но я действительно не знаю, выполнить ли SQL-инъекцию.Вот несколько запросов, которые используют $ _GET и не экранированы.
SELECT *,DATE_FORMAT(joined,'%M %d, %Y') as \"Joined\" FROM `members` WHERE `name` LIKE '".$ltr."%' ORDER BY points DESC LIMIT $page,50
Вот еще один:
SELECT * FROM groups WHERE id=$thisladder[grid]
Единственное, что я вижу, что "может" очистить $ _GET, этоэта функция:
if (!ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV,
$_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobals, $_SESSION);
}
foreach ($superglobals as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
Возможно, что вышеприведенная функция может очищать переменные.И да, система также использует глобальные переменные регистров, что тоже плохо.
Я также сделал резервную копию, на всякий случай.