Масс-скриптизация, или как раскрутить свой сайт - 10 Сентября 2010 - WIKI сайт про всё, что можно подумать
E-mail:
Пароль:

Wiki сайт: Всё про всё

Меню сайта
Главная » 2010 » Сентябрь » 10 » Масс-скриптизация, или как раскрутить свой сайт
11:46 Am
Масс-скриптизация, или как раскрутить свой сайт

          

4 скрипта на все случаи жизни

Приветствую тебя, создатель сайта, посвященного вопросам безопасности. Именно на таких читателей и рассчитана столь полезная статья ;). Не бойся, я не буду тебя учить, как зарегистрировать сайт на поисковиках или устроить спам-рассылку с рекламой твоего нового проекта. Я уверен, что ты это уже сделал сам, в противном случае прочитай об этом в инете. Мы же займемся более чистой работой - обзором скриптов, которые можно поместить на любой (ну, или практически любой) сайт по вопросам безопасности (или взлома - рассчитывай как хочешь).

Intro

Итак, мыслим последовательно и анализируем ситуацию. Допустим, у тебя есть хостинг, обязательно предоставляющий cgi. Неважно, где ты его достал - скардил шелл, зарегил по какой-либо кредитке или, как большинство честных граждан интернета =), зарегистрировался, например, на www.h1.ru. Но, тем не менее, во всех вышеизложенных предположениях ты являешься потенциально способным поднять рейтинг своего сайта на жизненно важных Perl-скриптах.

"Что это за зверь такой – жизненно важный Perl-скрипт?" - спросишь ты. "Это виртуальная "еда" интернета" - скажу я, и, пожалуй, буду прав. Хорошо-хорошо, не буду тебя томить, речь идет о четырех важных скриптах, которыми почти каждый день пользуются продвинутые (ну, и не очень) пользователи глобальной сети.

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

Итак, по порядку. Подумай, чем твой сайт может привлечь юзеров? Предполагаю возможные варианты - полезной инфой, рулезными прогами... Но ты ведь понимаешь, что пользователь, который обошел "с индекса до индекса" твой сайт без частых обновлений (еще бы - легче застрелиться, чем обновлять сайт) больше туда не зайдет. Поправлюсь, он зайдет, но, не увидев ничего нового, снова уйдет. Чтобы такого не происходило, нужно завлекать WWW-шников. Читаю твои мысли в правильном направлении - необходимо поместить на сайт какие-нибудь сканеры или чекеры =). Этим мы и займемся!

Мутим приватный ProxyChecker

Первый наш скрипт будет посвящен такой проблеме, как проверка на валидность прокси-серверов. Постараюсь кратко описать механизм действия скрипта. Имеются два поля: хост и порт (они заполняются клиентом). После их заполнения параметры передаются скрипту, проверяющему прокси. Он пытается осуществить соединение с сервером, и если ему это удалось, то запросить данные на какой-либо быстрый сервер (в моем случае - www.rambler.ru) и поймать заголовок HTTP-протокола (то есть ответ сервера – 200 - OK, 403 - Access Denied, etc). Затем, при успешном соединении скрипт аккуратненько записывает результат в лог-файл (какая же польза владельцу без лога рабочих проксиков!) и выдает результат клиенту в удобочитаемой форме.

На что тебе придется обратить внимание при написании чекера? Во-первых, как ни банально это звучит - на атрибуты файлов. Сам скрипт обязательно должен иметь атрибут 755 (выставляется командой FTP - SITE CHMOD 755 proxy.cgi), логфайл (по умолчанию proxylist.txt должен иметь атрибут 666 (для записи в него со стороны httpd).

По умолчанию в каталоге чекера лежит html-файл с обычной табличкой безо всякого дизайна (я надеюсь, ты справишься с этим недостатком ;)). Я сделал это, понимая, что на вкус и цвет товарищей нет. Некоторым сподручнее сделать чекер отдельной страницей, а некоторым - маленьким компактным окошечком слева (или справа) на сайте.

Таким образом, установив себе этот небольшой скриптик (размер около килобайта), ты привлечешь массу пользователей, желающих проверить на валидность proxy-сервер, и сам извлечешь пользу, прочитав через недельку-другую proxylist.txt.

Сканер безопасности на твоем сайте - мечта или реальность?

Следующим счастливым претендентом на добавление в скриптинг-раздел сайта будет сканер-анализатор WWW-сервера - nikto.pl. Он мне приглянулся большой базой уязвимостей и приятным интерфейсом. Изначально он задумывался как консольное приложение, но у него есть поддержка web-формата результата и сохранения его в html-файл. Поэтому, с помощью небольшого скрипта scan.cgi, мы передадим параметр сканеру (сервер, который будем изучать). После недолгого раздумья скрипт откроет нам result.html, в котором будут храниться результаты сканирования. После этого файл будет удален.

Для корректной работы сканера создай директорию с именем scan, в которой будет храниться файл с результатами. К тому же права на этой директории должны быть 777 для возможности создания файла.

Теперь немного теории. Что же делает этот скрипт? Он создает соединение с исследуемым web-сервером, проходит по базе уязвимостей и выводит подробный отчет о найденных ссылках (может выдать сообщение о существовании /......./etc/passwd, например :)). Данная софтина довольно полезна и наверняка понравится многим пользователям, облюбовавшим твой ресурс, так как скрипт-кидисов развелось невероятное количество, а их хлебом не корми - дай что-нибудь посканить.

С размещением формы для сканера на html-странице, я думаю, у тебя проблем не возникнет. Форма должна содержать один параметр со значением исследуемого хоста.

Новостная полоса сайта

Разумеется, твой сайт будет обновляться. Но как оповестить юзеров о новых разделах, программах или о полезной инфе на твоем ресурсе? Тут не обойтись без cgi, ибо редактировать html-файл каждый раз для добавления новости скучно и неспортивно. Я предлагаю тебе полосу новостей как вариант решения проблемы. Она представляет собой отдельную страницу (или, опять же, часть index.html) с названием новости. При обращении к скрипту новостей news.cgi без параметров подразумевается распечатка всех новостей. Печатается сама новостная таблица, но предусмотрена поддержка header.html и footer.html - начальная и конечная html-вставка соответственно (отточенные под твой дизайн).

Чтобы добавить свежую новость, существует форма (по умолчанию файл newsadd.html), состоящая из параметра 'news' - текст новости и 'pwd' - пароль администратора. При совпадении пароля (по дефолту - 'news') скрипт записывает в специальный файл текст новости и дату публикации (вывод новостей, как ты, наверное, понял, осуществляется посредством чтения из этого же файла). Поэтому не стоит забывать об атрибуте 666 на файл news.txt, поставляемом со скриптом, иначе запись будет невозможна.

Кроме того, в самом скрипте news.cgi имеется содержимое таблицы. Его ты тоже сможешь поменять, если тебя не устроит дизайн.

Полоса взломов

И, наконец, самый вкусный и козырной скрипт, который я не мог найти даже в инете в public-источниках - полоса взломов сайтов. Для тех, кто в танке, объясняю, что это за скрипт. Deface line - таблица на сайте, которая содержит зеркала взломанных сайтов (как и сам сайт), добавленные юзером. То есть пользователь добавляет свежий deface, скрипт скачивает index-файл взломанного ресурса и сохраняет его на сервере, а затем ждет, пока администратор сайта, то есть ты, не ознакомишься со взломом и не подтвердишь постинг этого дефейса. После этого дефейс считается подтвержденным и помещается в таблицу.

А теперь приведу небольшое руководство по установке. Вывод в html происходит через SSI (сервер должен поддерживать includes), либо при обращении к скрипту с параметром what=show. То есть таблица будет выведена при ссылке: http://your.site.ru/cgi-bin/deface.cgi?what=show.

Помимо списка дефейсов, таблица содержит две формы: для добавления дефейса юзером и вход администратора.

А теперь займемся редактированием изначальных настроек скрипта. Открываем скрипт deface.cgi и последовательно изучаем переменные:

### This variables may be changed without any risk

$language='ru';

$langfile='deface.lang';

Это язык системных сообщений и файл языка соответственно. По умолчанию русский. Если захочется сделать английскую версию, то поменяй значение на 'en'.

$salt='PLIWUtJFEPrqQ';

Зашифрованный пароль администратора. По умолчанию - 'deface'. Но как ты, наверное, понимаешь, пароли по умолчанию до добра не доводят, поэтому советую тебе его сменить. Для этого выполни команду на каком-либо shell "perl -e 'print crypt "пароль","PS" . "\n"'", где "пароль" - новый пароль. Полученный SALT сделай значением переменной $salt.

$defacedb='deface.db';

$defacedir='deface';

$defacefile='index.html';

Файл хранения дефейсов, директория для зеркала дефейса и файл зеркала. Можешь изменить их по своему вкусу, но помни, что права на файл хранения дефейса должны быть 666, а на директорию 777 (иначе скрипт просто не сможет записать в файл или создать новую папку в директории).

$header='header.html';

$footer='footer.html';

$adminheader='adminheader.html';

$adminfooter='adminfooter.html';

Заголовки и окончания html-файлов общей и admin-страницы. Общая страница используется для выдачи результатов операций (удаления/добавления дефейса), а админ-страница для изменения статуса дефейсов. Файлы с дефолтовым значением этих переменных поставляются вместе со скриптом и, в принципе, могут оставаться такими же.

$method='POST';

Метод передачи форм. Рекомендую оставить POST, так как он более надежен по сравнению с GET, хотя, хозяин - барин.

Это все переменные, которые ты можешь изменить. Далее идет код, который рассчитан практически на любую конфигурацию системы и не нуждается в изменении.

От тебя требуется лишь сделать SSI вставку в Index-файле сайта, например: .

И это не предел

Итак, ты успешно поместил вышеописанные скрипты на свой сайт, посещаемость ресурса увеличилась, и, кажется, все довольны. Но не обольщайся результатом. Скрипты довольно быстро приедаются, поэтому подключай фантазию и развивай свой сайт в правильном направлении. Посещай сайты с коллекцией cgi или php-скриптов, либо пиши свои (в идеале). Ибо материала по кодингу cgi-приложений очень много (][ не исключение), и постаравшись, научиться кодить совсем нетрудно, было бы желание.

Как обычно сами файлы брать здесь: www.xakep.ru.

Три основных способа исправления ошибки 500.

Ошибка 500 является внутренней ошибкой скрипта. Это происходит, в основном, по трем банальным причинам:

1. Скрипт залит не в ASCII-режиме. Каждый скрипт в /cgi-bin обязательно должен быть закачан в текстовом режиме (отброс лишних символов в конце строки), тогда данной ошибки не возникнет. Но это актуально только для win-пользователей.

2. На скрипт не установлен атрибут 755 (либо другой атрибут, оговариваемый в инструкции твоего хостинга). 755 - атрибут исполнения файла для всех пользователей, что позволит web-серверу выполнить его через интерпретатор.

3. Неверный заголовок cgi-скрипта, то есть путь к Perl-интерпретатору. По умолчанию этот заголовок #!/usr/bin/perl, но не на всех машинах путь именно такой. Лучше спросить администратора сервера про путь к perl. Только не усердствуй с вопросами: админы народ нервный, поэтому не стоит изнурять их своими глупостями.

 

 

Категория: Советы Безопасности при Использовании компьютера | Просмотров: 9 | Добавил: torayevtm | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *: