Best-club - портал хорошего настроения!
→◊ Библиотека ◊←
Меню сайта
  • Драмы
  • Ужасы
  • Фэнтези
  • Боевики
  • Мистика
  • Комедии
  • Триллеры
  • Мелодрамы
  • Фантастика
  • Мультфильмы
  • Приключения
  • Связь с админом
  • Список пользователей
  • Полная статистика сайта
  • ТОП наград
  • Переводчик
  • Конвертер величин
  • Проверка правописания
  • Раздача ICQ
  • Оставить отзыв о сайте
  • Раскрутка сайтов

  • Поиск по сайту
    Введите ключевое слово
    для поиска



    Статистика сайта




    ProfiSmart TOP webgari.com Рейтинг сайтов

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

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

    Зарегистрировано:
    Всего: 1117
    Парней: 1070
    Девушек: 47
    Последний: molodoo

    Облако тегов
    Важная информация
    Главная » Статьи » Wap/Web Мастеру » PHP, Perl, ASP

    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. До новых встреч.  

    Категория: PHP, Perl, ASP | Добавил: Admin | Дата: 29.08.2009 | Просмотры: 872 | Рейтинг:
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Вход на сайт
    Гость, добро пожаловать на best-club! Тапки в углу, пиво в холодильнике. Располагайся:) Для получения большего комфорта войди как пользователь или зарегистрируйся.



    Обмен музыкой [?]
    Открыть в новом окне

    Партнёры





    Опрос

    Кто Вы?
    Всего ответов: 22

     
    Best-club team © 2008 - 2024

    SiteMap Партнёры и друзья Поддержать проект
    Третий Мир: Война Королей - Форум
    Администрация сайта не несёт ответственности за материалы опубликованные на сайте! Все материалы исключительно для ознакомления!
    Мини профиль