|
Участник форума
Регистрация: 17.12.2006
Сообщений: 191
Провел на форуме: 415254
Репутация:
75
|
|
ListDir v1.0 Листинг содержимого псевдокорневой директории и поддиректорий на вашем сайте. Обычно помогает при 403 ошибке: "Forbidden. You don't have permission to access /~user/dir/ on this server." т.е. когда админ запретил пользователям просмотр содержимого web директорий возможно в целях повышения security.
PHP код:
#!/usr/bin/perl
###################
# #
# ListDir v1.0 ######################
# #
################ Benvolio mindcrimer #
# #
#########################
# klassno, vy polezli v ishodniki..
# zna4it, ya tak polagayu, eto vam za4em-to ponadobilos'
# tak vot, eto delo pisalos' s boduna i za 1 ve4er
# koro4e v kode sam 4ert nogu slomit, nikakoj struktury, vse v kashu
# sej skript real'no primenyaetsya(lsya) na
# http://dezcom.mephi.ru/~jerry/download/listdir.cgi i vrode dazhe rabotal :)
# esli ne len' - mozhete zajti na moyu strani4ku
# http://dezcom.mephi.ru/~jerry/
# ili mozhno potrepat'sya po as'ke: 16455534
# vsego samogo! vash eugene a. jerusalimov aka benvolio mindcrimer :)
# p.s. es4e mozhno primenyat' index.shtml: <!--#include virtual="listdir.cgi" -->
$cvalue=""; $command="";
$envstring="$ENV{'QUERY_STRING'}";
($command,$cvalue)=split('=',$envstring);
print "Content-type: text/html\n\n";
print "<html><head><title>ListDir v1.0 by Benvolio mindcrimer</title>
<meta name=\"author\" content=\"Eugene A. Jerusalimov\"></head><body>\n";
@sp=split('\/',$ENV{'SCRIPT_NAME'});
foreach(@sp) { chomp; $sn=$_; }
print "<table><tr><td>ListDir v1.0: Browsing the directory <b><a href=\"$sn\">/</a>$cvalue</b></td></tr></table><table>\n";
if($command=="subdir" || $cvalue ne "") { chdir($cvalue); }
open(FILES,"/bin/ls |");
@files=<FILES>;
foreach(@files)
{
chomp;
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat;
@sp=split('\/');
foreach(@sp) { chomp; }
$fsz=int $size/1024;
$sep="";$subdir="";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($mtime);
if($mday<10) { $mday="0$mday"; }
$mon++;
if($mon<10) { $mon="0$mon"; }
$date="$mday.$mon.$year";
if($min<10) { $min="0$min"; }
if($hour<10) { $hour="0$hour"; }
$time="$hour:$min";
$octmode=(sprintf("%lo",$mode)%1000);
if($cvalue ne "") { $sep="/"; }
if($nlink==1) { ($z,$afext)=split('\.'); $fsize="$fsz"."k"; } else { $afext="dir"; $fsize="---"; $subdir="?subdir=$cvalue$sep$_"; }
if($_ ne $sn) { print "<tr><td>$afext</td><td>";
if($nlink==1) { print "<a href=\"$cvalue$sep$_\">$_</a>"; } else { print "<a href=\"$sn$subdir\">$_</a>"; }
print "</td><td>$octmode</td><td>$fsize</td><td>$date</td><td>$time</td></tr>\n"; }
}
print "</table><br><table><tr><td>Copyright <a href=\"http://dezcom.mephi.ru/~jerry/\">Benvolio mindcrimer</a> 1999.</td></tr><tr><td>If you want to get a copy of this script simply <a href=\"mailto:jerry\@dezcom.mephi.ru?subject=listdir.cgi\">mail me</a>.</td></tr></table></body></html>\n";
# (c) eugene a. jerusalimov aka. benvolio mindcrimer
полезные скрипт для рисовки СКАМА
(Этот скрипт пересылает данные с формы, заполненные посетителями Вашего сервера. В форме могут быть обозначены любые типы полей, такие, например, как текстовые, парольные (password), checkbox и т.д. Форма создается Вами и может иметь любое количество полей.)
PHP код:
#!/perl/bin/perl
#############################################################################
# Возвратная форма #
# Написана Андреем Юриным 22.09.98 #
# ###########################################################################
# WWW.SCRIPT.RU #
# ###########################################################################
# Этот скрипт является частью коллекции скриптов сервера www.script.ru #
# Свои пожелания и/или предложения присылайте на andrey@script.ru #
#############################################################################
##################################################
# Определение переменных: #
##################################################
# Настоящий путь к программе отсылки e-mail
$mailprog = '/usr/sbin/sendmail';
#Алфавиты кодировок
$tbl_alt="*ЎўЈ¤Ґ¦§Ё©Є«¬*®Їабвгдежзиймлкноп";
$tbl_koi="БВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭШЩЯЬАСбвчздецъйклмнопртуфхжигюыэшщяьас";
$tbl_win="абвгдежзийклмнопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ";
$win_koi="/".$tbl_win."/".$tbl_koi."/";
$win_alt="/".$tbl_win."/".$tbl_alt."/";
#
&get_date;
# Считать данные формы
&parse_form;
# Проверить все ли необходимые поля заполнены
&check_required;
# Return HTML Page or Redirect User
&return_html;
# отсылка e-mail
&send_mail;
#################################################################
# Перевод даты #
#################################################################
sub get_date {
@days = ('Воскресение','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
@months = ('Январь','Февраль','Март','Апрель','Май','Июнь','Июль', 'Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }
$date = "$days[$wday], $months[$mon] $mday, 19$year в $hour\:$min\:$sec";
}
#################################################################
# Считывание данных формы #
#################################################################
sub parse_form {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'})
} elsif ($ENV{'REQUEST_METHOD'} eq "GET") {
$buffer = $ENV{'QUERY_STRING'}
} else {
&error('request_method');
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<([^>]|\n)*>//g;
$value =~ s/<//g;
$value =~ s/>//g;
$value =~ s/\s/ /g;
$value =~ s/\cM\n/<br>/gi;
$value =~ s/\n/<br>/gi; # Без перевода каретки
$value =~ s/\|/\\/gi; #Без разделителей
if ($name eq 'recipient' ||
$name eq 'subject' ||
$name eq 'email' ||
$name eq 'realname' ||
$name eq 'redirect' ||
$name eq 'bgcolor' ||
$name eq 'background' ||
$name eq 'link_color' ||
$name eq 'vlink_color' ||
$name eq 'text_color' ||
$name eq 'alink_color' ||
$name eq 'title' ||
$name eq 'sort' ||
$name eq 'submit' ||
$name eq 'print_config' ||
$name eq 'return_link_title' ||
$name eq 'return_link_url' && ($value)) {
$CONFIG{$name} = $value;
} elsif ($name eq 'required') {
@required = split(/,/,$value);
} elsif ($name eq 'env_report') {
@env_report = split(/,/,$value);
} else {
if ($FORM{$name} && ($value)) {
$FORM{$name} = "$FORM{$name}, $value";
} elsif ($value) {
$FORM{$name} = $value;
}
}
}
}
#################################################################
# Проверка заполнения обязательных полей #
#################################################################
sub check_required {
foreach $require (@required) {
if ($require eq 'recipient' ||
$require eq 'subject' ||
$require eq 'email' ||
$require eq 'realname' ||
$require eq 'redirect' ||
$require eq 'bgcolor' ||
$require eq 'background' ||
$require eq 'link_color' ||
$require eq 'vlink_color' ||
$require eq 'alink_color' ||
$require eq 'text_color' ||
$require eq 'sort' ||
$require eq 'title' ||
$require eq 'print_config' ||
$require eq 'return_link_title' ||
$require eq 'return_link_url') {
if (!($CONFIG{$require}) || $CONFIG{$require} eq ' ') {
push(@ERROR,$require);
}
} elsif (!($FORM{$require}) || $FORM{$require} eq ' ') {
push(@ERROR,$require);
}
}
if (@ERROR) {
&error('missing_fields', @ERROR);
}
}
#################################################################
# Вывод сообщения о добавлении записи #
#################################################################
sub return_html {
my $bod = &body_attributes;
if ($CONFIG{'redirect'} =~ /http\:\/\/.*\..*/) {
print "Location: $CONFIG{'redirect'}\n\n";
} else {
if ($CONFIG{'title'}) {
&print_head($CONFIG{'title'}, $bod);
} else {
&print_head($CONFIG{'title'}, $bod);
}
print "<center>\n";
if ($CONFIG{'title'}) {
print "<h1>$CONFIG{'title'}</h1>\n";
} else {
print "<h1>Спасибо</h1>\n";
}
print "</center>\n";
#print "<center>Это содержимое формы, заполненой Вами и отправленной к $CONFIG{'recipient'}.<br>";
print "$date</center><p><hr size=2 width=90\%><p>\n";
if ($CONFIG{'sort'} eq 'alphabetic') {
foreach $key (sort keys %FORM) {
print "<b>$key:</b> $FORM{$key}<p>\n";
}
} elsif ($CONFIG{'sort'} =~ /^order:.*,.*/) {
$sort_order = $CONFIG{'sort'};
$sort_order =~ s/order://;
@sorted_fields = split(/,/, $sort_order);
foreach $sorted_field (@sorted_fields) {
if ($FORM{$sorted_field}) {
print "<b>$sorted_field:</b> $FORM{$sorted_field}<p>\n";
}
}
} else {
foreach $key (keys %FORM) {
print "<b>$key:</b> $FORM{$key}<p>\n";
}
}
print "<p><hr size=7 width=75%><p>\n";
if ($CONFIG{'return_link_url'} =~ /http\:\/\/.*\..*/ && $CONFIG{'return_link_title'}) {
print "<ul>\n";
print "<li><a href=\"$CONFIG{'return_link_url'}\">$CONFIG{'return_link_title'}</a>\n";
print "</ul>\n";
}
&print_end;
}
}
#################################################################
# Подпрограмма отправки сообщения #
#################################################################
sub send_mail {
foreach $i (keys %FORM) {
eval("\$FORM{$i} =~ tr".$win_koi);
}
foreach $i (keys %CONFIG) {
eval("\$CONFIG{$i} =~ tr".$win_koi);
}
eval("\$date =~ tr".$win_koi);
open(MAIL,"|$mailprog -t");
# open(MAIL, ">form");
print MAIL "To: $CONFIG{'recipient'}\n";
print MAIL "From: $CONFIG{'email'} ($CONFIG{'realname'})\n";
if ($CONFIG{'subject'}) {
print MAIL "Subject: $CONFIG{'subject'}\n\n";
} else {
print MAIL "Subject: WWW Form Submission\n\n";
}
print MAIL "***** This is free service from Land.Ru ****\n";
print MAIL "It's results of fill You form. It was ";
print MAIL "submitted by $CONFIG{'realname'} ($CONFIG{'email'}) on ";
print MAIL "$date\n";
print MAIL "---------------------------------------------------------------------------\n\n";
if ($CONFIG{'print_config'}) {
@print_config = split(/,/,$CONFIG{'print_config'});
foreach $print_config (@print_config) {
if ($CONFIG{$print_config}) {
print MAIL "$print_config: $CONFIG{$print_config}\n\n";
}
}
}
if ($CONFIG{'sort'} eq 'alphabetic') {
foreach $key (sort keys %FORM) {
print MAIL "$key: $FORM{$key}\n\n";
}
} elsif ($CONFIG{'sort'} =~ /^order:.*,.*/) {
$CONFIG{'sort'} =~ s/order://;
@sorted_fields = split(/,/, $CONFIG{'sort'});
foreach $sorted_field (@sorted_fields) {
if ($FORM{$sorted_field}) {
print MAIL "$sorted_field: $FORM{$sorted_field}\n\n";
}
}
} else {
foreach $key (keys %FORM) {
print MAIL "$key: $FORM{$key}\n\n";
}
}
print MAIL "---------------------------------------------------------------------------\n";
foreach $env_report (@env_report) {
print MAIL "$env_report: $ENV{$env_report}\n";
}
close (MAIL);
}
#################################################################
# Вывод сообщений об ошибках #
#################################################################
sub error {
my $bod = &body_attributes;
($error,@error_fields) = @_;
if ($error eq 'bad_referer') {
&print_head("Нет прав доступа");
print "<center>\n <h1>Извините, но у Вас нет прав доступа!</h1>\n </center>\n";
&print_end;
} elsif ($error eq 'request_method') {
&print_head("Не тот метод", $bod);
print "<center>\n <h1>Метод, которым была отправлена форма, не поддерживается сервером. Форма может быть отправлена только способами GET или POST</h1>\n </center>\n";
&print_end;
} elsif ($error eq 'missing_fields') {
&print_head("Вы заполнили не все поля", $bod);
print "<center>\n <h1>Вы оставили обязательные поля в форме пустыми</h1>\n </center>\n";
print "Следующие поля необходимо заполнить:<p>\n";
print "<ul>\n";
foreach $missing_field (@error_fields) {
print "<li>$missing_field\n";
}
print "</ul>\n";
print "<p><hr size=7 width=75\%><p>\n";
print "Возвратитесь в форму и попробуйте <a href=\"$ENV{'HTTP_REFERER'}\">заполнить поля</a>\n";
&print_end;
}
exit;
}
#################################################################
# Вывод аттрибутов тега <body> #
#################################################################
sub body_attributes {
my $out;
if ($CONFIG{'bgcolor'}) {
$out = $out." bgcolor=\"$CONFIG{'bgcolor'}\"";
}
if ($CONFIG{'background'} =~ /http\:\/\/.*\..*/) {
$out = $out." background=\"$CONFIG{'background'}\"";
}
if ($CONFIG{'link_color'}) {
$out = $out." link=\"$CONFIG{'link_color'}\"";
}
if ($CONFIG{'vlink_color'}) {
$out = $out." vlink=\"$CONFIG{'vlink_color'}\"";
}
if ($CONFIG{'alink_color'}) {
$out = $out." alink=\"$CONFIG{'alink_color'}\"";
}
if ($CONFIG{'text_color'}) {
$out = $out." text=\"$CONFIG{'text_color'}\"";
}
return $out;
}
#################################################################
# Печать HTML - заголовка #
#################################################################
sub print_head {
my $bod = $_[1];
print "Content-type: text/html";
print "\n\n";
print "<html><head>";
print "<title>$_[0]</title>\n";
print "</head><body $bod>\n";
print "<div align=center><table border=\"0\" cellpadding=\"0\" cellspacing=\"4\" width=\"75%\">\n";
}
#################################################################
# Печать HTML - конца #
#################################################################
sub print_end {
$rand = int rand(10000000);
print "</table></div>
<p align=center><a href=\"http://www.reklama.ru/cgi-bin/href/land?$rand\" target=\"_top\"><img src=\"http://www.reklama.ru/cgi-bin/banner/land?$rand\" alt=\"www.reklama.ru\" border=\"0\" height=\"60\" width=\"468\"></a></p>
<p align=right><font size=-1><a href=\"http://www.script.ru\">Script.Ru</a>
<br>Reconstructed for Land.Ru<br>© 1998 <a href=\"mailto:andrey\@script.ru\">Андрей Юрин</a>
<br>Create by<br>© 1996 <a href=\"http://www.worldwidemart.com/scripts/formmail.shtml\">Matt Wright</a>
</font></p></body></html>\n";
}
Последний раз редактировалось REDsaratov; 11.06.2007 в 02:05..
|