Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Лабораторная по Perl, Защита информации, использование ошибки фильтрации в коде
Nemiana
Вставить ник
сообщение 26:03:2008, 10:36
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 3
Регистрация: 21:03:2008
Пользователь №: 16 054



Репутация: - 0 +


Лабораторная по предмету "Основы защиты информации". Все бы хорошо, только Perl я в глаза не видела, а задание надо сделать. Помогите решить эту хитрую задачу.

Задание. Можно ли удалить файл /etc/passwd используя ошибку фильтрации вводу пользователя (переменная par1) приведенного ниже фрагмента cgi-программы написанной на языке Perl? Если да, запишите необходимое значение переменной par1 в www-url-encoding форме. Если нет - объясните, почему это невозможно.

$cgidir=”/etc”; open(DATA,"$cgidir/data/$par1.pass");
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 5)
Vovochka
Вставить ник
сообщение 26:03:2008, 23:39
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 198
Регистрация: 4:08:2006
Из: Vladivostok.pm
Пользователь №: 5 749
Специализация: Perl, Web



Репутация: - 4 +


Я не спец в компьютерной безопасности, но думаю, что нет.
Не смотря на то, что выйти из папки /etc/data можно, имя открываемого файла всегда будет заканчиваться на ".pass".
Как узнаете правильный ответ, поделитесь wink.gif
Подняться вверх 
 
Сообщение #2
Nemiana
Вставить ник
сообщение 27:03:2008, 17:31
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 3
Регистрация: 21:03:2008
Пользователь №: 16 054



Репутация: - 0 +


Vovochka, спасибо и на этом )) Если вдруг узнаю правильный ответ, обязательно напишу.
Подняться вверх 
 
Сообщение #3
????
Вставить ник
сообщение 27:03:2008, 17:51
Цитата Ответить 


Почетный секретчик
*****

Группа: Модеры
Сообщений: 1 166
Регистрация: 30:09:2003
Из: Брест
Пользователь №: 58
Специализация: Пиво



Репутация: - 2 +


Nemiana
теоретически возможно.
http://ldp.dvo.ru/linuxfocus/Russian/Novem...rticle203.shtml
Цитата
Поэтому, если наш запрос showhtml.cgi?filename=%2Fetc%2Fpasswd%00, файл будет называться my $filename = "/etc/passwd\0.html" и нашему удивленному взору предстанет кое-что не являющееся HTML.

Что случилось? Команда strace показывает, как Perl открывает файл:

/tmp >>cat >open.pl << EOF
> #!/usr/bin/perl
> open(FILE, "/etc/passwd\0.html");
> EOF
/tmp >>chmod 0700 open.pl
/tmp >>strace ./open.pl 2>&1 | grep open
execve("./open.pl", ["./open.pl"], [/* 24 vars */]) = 0
...
open("./open.pl", O_RDONLY) = 3
read(3, "#!/usr/bin/perl\n\nopen(FILE, \"/et"..., 4096) = 51
open("/etc/passwd", O_RDONLY) = 3

Последний open(), показанный strace, соответствует системному вызову, написанному на C. Мы можем видеть, что расширение .html исчезает, что позволяет нам открыть /etc/passwd.


проверять влом

в догонку http://sdteam.com/?tid=295
Подняться вверх 
 
Сообщение #4
Nemiana
Вставить ник
сообщение 27:03:2008, 18:25
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 3
Регистрация: 21:03:2008
Пользователь №: 16 054



Репутация: - 0 +


????
Спасибо за помощь! *Углубляюсь в чтение*
Подняться вверх 
 
Сообщение #5
Vovochka
Вставить ник
сообщение 27:03:2008, 23:09
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 198
Регистрация: 4:08:2006
Из: Vladivostok.pm
Пользователь №: 5 749
Специализация: Perl, Web



Репутация: - 4 +


Ну вот smile.gif
Подняться вверх 
 
Сообщение #6


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 11:25
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net