Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Perl программирование _ Лабораторная по Perl

Автор: Nemiana 26:03:2008, 10:36

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

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

$cgidir=”/etc”; open(DATA,"$cgidir/data/$par1.pass");

Автор: Vovochka 26:03:2008, 23:39

Я не спец в компьютерной безопасности, но думаю, что нет.
Не смотря на то, что выйти из папки /etc/data можно, имя открываемого файла всегда будет заканчиваться на ".pass".
Как узнаете правильный ответ, поделитесь wink.gif

Автор: Nemiana 27:03:2008, 17:31

Vovochka, спасибо и на этом )) Если вдруг узнаю правильный ответ, обязательно напишу.

Автор: ???? 27:03:2008, 17:51

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

Автор: Nemiana 27:03:2008, 18:25

????
Спасибо за помощь! *Углубляюсь в чтение*

Автор: Vovochka 27:03:2008, 23:09

Ну вот smile.gif

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)