|
|
|
| Как водится, ища соринку в глазу у других, не заметил бревно в глазу своем.
В одном из скриптов нашел сразу две дыры:
методом get передается переменная $var, которая является именем графического файла.
Далее имеем:
$path="/somewhere/".$var;
print "<center><img src=\"$path\" ></center>";
|
и соответственно
$query="SELECT data FROM table WHERE id = '$var'";
$result=mysql_query($query);
$data=mysql_fetch_row($result);
print "<b>$data[0]</b>";
|
переменная никак не проверяется. Как прикрыть вторую дырку - понятно. С первой - не очень понятна опасность.
Собственно вопрос: чем могут потенциально грозить данные прорехи?
Версия MYSQL 3.23, так что UNION вроде как еще не работает. Никакой важной информации в table нет... короче, можно ли что-то взломать через эти уязвимости? | |
|
|
|
|
|
|
|
для: Loki
(12.10.2005 в 15:25)
| | Первая - это межсайтовый скриптинг, правда здесь его очень сложно осуществить... было бы удобнее если было не было "/somewhere/" - тогда вместо картини можно было бы подставить путь http://www.somehost.ru/index.php и собирать данные пользователя.
Второй, а что в таблице? Если там пароли или ещё что-нибудь? | |
|
|
|
|
|
|
|
для: cheops
(12.10.2005 в 15:33)
| | Нет, в таблице только названия файлов и их описания...
в общем, похоже что это ложный шухер и через эти дырки ничего не сделать? Во всяком случае, до тех пор, пока хостер не обновит версию MYSQL. | |
|
|
|
|
|
|
|
для: Loki
(12.10.2005 в 16:06)
| | sql-inj опасна только если в бд храняться ценные данные, пароли, логин и прочая лобуда.
Впрочем is_numeric все решит :) Кстати именно, так мой первый движок и сломали :))) | |
|
|
|
|
|
|
|
для: Akira
(12.10.2005 в 16:26)
| | в том-то и дело, что ключ нифига не нумерик:)
даже если в базе нет никаких паролей, то DROP DATABASE никого не обрадует:) | |
|
|
|
|
|
|
|
для: Loki
(12.10.2005 в 16:40)
| | Тогда просто проверять на содержиние в строке UNION.
И ключи всегда проще делать цифровыми или нет? | |
|
|
|
|
|
|
|
для: Akira
(12.10.2005 в 17:00)
| | дело в том, что файлы загружаются по ФТП, так что в данном случае, использовать в качестве ключа имя файла удобнее. А таблица больше ни с чем не связана. Кроме того, файлы могут перемещаться из папки в папку, так что имя файла - единственный идентификатор:) | |
|
|
|
|
|
|
|
для: Loki
(12.10.2005 в 17:18)
| | mysql_real_escape_string уже отменили? | |
|
|
|
|
|
|
|
для: isset
(12.10.2005 в 17:39)
| | Я же написал в первом посте, что данные дурки (хорошая описка получилась:) прикрыть - делов на 3 минуты. Просто было интересно что через них возможно сделать... оказалось что ничего страшного. | |
|
|
|
|
|
|
|
для: Loki
(12.10.2005 в 15:25)
| | Э-э... А можно просьбу? Просветите, пожалуйста: чем страшен UNION? | |
|
|
|
|
|
|
|
для: Киналь
(12.10.2005 в 18:21)
| | Подробности в статье по ссылке Безопасное программирование на PHP | |
|
|
|