Perl для новичков. Свой CGI сканнер. - to beginners <!--%IFTH1%0%-->- Articles<!--%IFEN1%0%--> - Каталог статей - V . S . I . S ( Volgograd site on information safety )
Суббота, 31.07.2010, 16:48
Приветствую Вас USER | RSS
Главная
Регистрация
Вход
Меню сайта

Категории каталога
breaking and research of programs [10]
Programming [37]
Cryptography and enciphering [2]
Breaking and protection [2]
Networks and reports [0]
Windows vs Unix [1]
About the Internet programs [0]
the Miscellaneous [0]
Lessons on programming [0]
freaking [1]
carding [1]
to beginners [10]

Мини-чат
200

Наш опрос
Довольны ли Вы W Vista ?
Всего ответов: 36

Главная » Статьи » Articles » to beginners [ Добавить статью ]

Perl для новичков. Свой CGI сканнер.

Автор: VIPER_SV


Хай друзья! В этой статье я постараюсь дать вам начальные основы по кодингу на перле, а также показать с какой лёгкостью можно написать программы для хакера и админа.

1. Где взять и где искать?
Где? Почти во всех *nix'оподобных системах он встроен. Если же вы используете платформу класса win32, то вам на www.activestate.com, с установкой не возникнет проблем, особенно если вы выбрали .msi инсталяшку.

2. Базовые знания.
Perl - очень изящный, лёгкий и в тоже время мощный язык. Начнем с самых основ. Синтаксис перла очень похож на синтаксис таких языков, как C, shell и т.д. Накалякаем простейшую программу типа "Hello world!":

#!/usr/bin/perl
print "Hello world!n";

И всё, никаких main()! Разберём эту прогу по строкам (их так много =)).
#!/usr/bin/perl - стандартная строка, это путь к перлу
print "Hello worldn" - print(оператор текста), текст заключается между "", n - конец строки.
Переменные обозначаются знаком бакса $. Например код:
#!/usr/bin/perl
$hw="hello worldn";
print "$hw";

Всё просто до безобразия. Также легко с циклами и учловиями if-else. Рассмотрим небольшой код программы (#комментарий):
#!/usr/bin/perl
print "How old are you?n"; #выводит вопрос How old are you?
chomp($in=); 
#chomp - перенос строки
#$in= - все данные введённые с клавы будут занесены в переменную $in
if($in > 12){
print "too smalln";} # если меньше 10, то выводить too small
else{print "big bro";} # иначе печатать big bro

Циклы в основном стандартные (как в других языках). Например, цикл for:
#!/usr/bin/perl
for($n=0;$n < 5; $n++) # $n=0(сначала $n=0), $n < 5 ($n будет все числа до 5), $n++(дальше, если всё ок) 
{
print "Здарова $n раз =)";
}

Выведет:
Здарова 0 раз =) Здарова 1 раз =)
И т.д. до пяти

3. Научимся на исходниках
Здесь я небуду давать описаний операторов и вообще не буду ничего объяснять, а просто дам несколько закомментированных программных кодов.
Поехали. CGI сканнер записью в логфайл.
#!/usr/bin/perl #путь к перлу
use IO::Socket; # подключение модуля IO::Socket
print "Enter hostname: ";
chomp($host=); # данные с клавы в переменную $host
print "Enter port: ";
chomp($port=); # данные с клавы в переменную $port
if($port eq ""){$port=80;} # если значение $port не введено, то $port=80;
print "Wanna logs? y/n: "; # Хотите логов?
chomp($logs=); # в переменную $logs
open(OUT, "$logs"); # открыть логфайл, занести во переменную OUT
open(DATA, "bugs"); # открыть баглист (bugs), занести во временную пер. DATA
@base=; # массив @base равен переменной DATA
close(DATA); # закрыть файл bugs
$x = chomp(@base); # $x равен кол-ву строк массива @base
print "Scan started!";
for($i=0; $i < = $x; $i++){ #цикл for, описанный выше
$socket = IO::Socket::INET->new( #созадние нового сокета ($socket)
PeerAddr => "$host", # хост жертвы
PeerPort => "$port", # http порт жертвы
Proto => 'tcp' # протокол
);
print $socket "GET @base[$i] HTTP/1.0nn"; # отправить запрос через $socket
$code=<$socket>; # $code равна возвратному значению $socket
$cgi = @base[$i]; # $cgi равна данному скрипту массива @base
if($code=~ /200/){ # если возвратное значение ($code) равно 200,
print "$cgi - 200 Okn"; # выводить на экран сообщение: такой-то скрипт найден 
print OUT "$cgi - 200 Okn"; # тоже, только в логфайл
}
}

Вот и написан простейший cgi сканнер на perl, с использованием модуля IO::Socket и ведением логов. Цель была показать насколько просто писать подобные программы для перла. Будут вопросы идите на форум и задавайте, также читайте perldoc. До новых встреч.
Категория: to beginners | Добавил: ^KeRnEl^ (06.08.2008)
Просмотров: 180 | Рейтинг: 0.0/0 |
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
E-mail:
Пароль:

Поиск

Друзья сайта

Статистика

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


V . S . I . S ( Volgograd Site on Information Safety ) © 2010
Хостинг от uCoz