Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите-ка мне кое-чего поломать.
 
 автор: Loki   (12.10.2005 в 15:25)   письмо автору
 
 

Как водится, ища соринку в глазу у других, не заметил бревно в глазу своем.
В одном из скриптов нашел сразу две дыры:
методом 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 нет... короче, можно ли что-то взломать через эти уязвимости?

   
 
 автор: cheops   (12.10.2005 в 15:33)   письмо автору
 
   для: Loki   (12.10.2005 в 15:25)
 

Первая - это межсайтовый скриптинг, правда здесь его очень сложно осуществить... было бы удобнее если было не было "/somewhere/" - тогда вместо картини можно было бы подставить путь http://www.somehost.ru/index.php и собирать данные пользователя.

Второй, а что в таблице? Если там пароли или ещё что-нибудь?

   
 
 автор: Loki   (12.10.2005 в 16:06)   письмо автору
 
   для: cheops   (12.10.2005 в 15:33)
 

Нет, в таблице только названия файлов и их описания...
в общем, похоже что это ложный шухер и через эти дырки ничего не сделать? Во всяком случае, до тех пор, пока хостер не обновит версию MYSQL.

   
 
 автор: Akira   (12.10.2005 в 16:26)   письмо автору
 
   для: Loki   (12.10.2005 в 16:06)
 

sql-inj опасна только если в бд храняться ценные данные, пароли, логин и прочая лобуда.
Впрочем is_numeric все решит :) Кстати именно, так мой первый движок и сломали :)))

   
 
 автор: Loki   (12.10.2005 в 16:40)   письмо автору
 
   для: Akira   (12.10.2005 в 16:26)
 

в том-то и дело, что ключ нифига не нумерик:)
даже если в базе нет никаких паролей, то DROP DATABASE никого не обрадует:)

   
 
 автор: Akira   (12.10.2005 в 17:00)   письмо автору
 
   для: Loki   (12.10.2005 в 16:40)
 

Тогда просто проверять на содержиние в строке UNION.
И ключи всегда проще делать цифровыми или нет?

   
 
 автор: Loki   (12.10.2005 в 17:18)   письмо автору
 
   для: Akira   (12.10.2005 в 17:00)
 

дело в том, что файлы загружаются по ФТП, так что в данном случае, использовать в качестве ключа имя файла удобнее. А таблица больше ни с чем не связана. Кроме того, файлы могут перемещаться из папки в папку, так что имя файла - единственный идентификатор:)

   
 
 автор: isset   (12.10.2005 в 17:39)   письмо автору
 
   для: Loki   (12.10.2005 в 17:18)
 

mysql_real_escape_string уже отменили?

   
 
 автор: Loki   (12.10.2005 в 18:02)   письмо автору
 
   для: isset   (12.10.2005 в 17:39)
 

Я же написал в первом посте, что данные дурки (хорошая описка получилась:) прикрыть - делов на 3 минуты. Просто было интересно что через них возможно сделать... оказалось что ничего страшного.

   
 
 автор: Киналь   (12.10.2005 в 18:21)   письмо автору
 
   для: Loki   (12.10.2005 в 15:25)
 

Э-э... А можно просьбу? Просветите, пожалуйста: чем страшен UNION?

   
 
 автор: cheops   (12.10.2005 в 20:01)   письмо автору
 
   для: Киналь   (12.10.2005 в 18:21)
 

Подробности в статье по ссылке Безопасное программирование на PHP

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования