!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/home/southwnd/cgi-bin/   drwxr-xr-x
Free 318.39 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     xformmai.cgi (15.01 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
## Virginia Lawrence ### Adapted for ElisabethWaldoMusic.com: 
## CURRENT 7-20-99 11:35 #
##############################################################################
## Don Killen ### Adapted for Greenleaf Software Inc: CURRENT 10/22/96 12:15 #
#                                                                 #
# Modified Version 1.0                                              #
# Modifications Copyright (c) 1996 Donald E. Killen, All Rights Reserved.    #
# This version of FormMail may be used and modified free of charge by anyone #
# so long as this copyright notice and the one below by Matthew Wright remain#
# intact. By using this code you agree to indemnify Donald E. Killen from any#
# liability arising from it's use. You also agree that this code cannot be   #
# sold to any third party without prior written consent of both Don Killen   #
# and Matthew M. Wright.                             #
#                                         #
##############################################################################
# FormMail            Version 1.5                     #
# Copyright 1996 Matt Wright    mattw@worldwidemart.com                 #
# Created 6/9/95                Last Modified 2/5/96                 #
# Scripts Archive at:        http://www.worldwidemart.com/scripts/         #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1996 Matthew M. Wright  All Rights Reserved.                     #
#                                                                            #
# FormMail may be used and modified free of charge by anyone so long as this #
# copyright notice and the comments above remain intact.  By using this      #
# code you agree to indemnify Matthew M. Wright from any liability that      #
# might arise from its use.                                                 #
#                                                                 #
# Selling the code for this program without prior written consent is         #
# expressly forbidden.  In other words, please ask first before you try and  #
# make money off of my program.                                          #
#                                                                            #
# Obtain permission before redistributing this software over the Internet or #
# in any other medium.    In all cases copyright and header must remain intact #
##############################################################################
# Define Variables 
#     Detailed Information Found In README File.

# $mailprog defines the location of your sendmail program on your unix 
# system.

$mailprog = '/usr/lib/sendmail';

# @referers allows forms to be located only on servers which are defined 
# in this field.  This fixes a security hole in the last version which 
# allowed anyone on any server to use your FormMail script.

@referers = ('www.elisabethwaldomusic.com','elisabethwaldomusic.com','snow.he.net');

##### END of variable declarations ####

# Check Referring URL
&check_url;

# Retrieve Date
&get_date;

# Parse Form Contents
&parse_form;

# Check Required Fields
&check_required;

# Return HTML Page or Redirect User
&return_html;

# Courtesy E-Mail to Visitor
&send_courtesy;

# Send E-Mail
&send_mail;

##### MAIN ends here (only subroutines follow)

sub check_url {

   if ($ENV{'HTTP_REFERER'}) {
      foreach $referer (@referers) {
         if ($ENV{'HTTP_REFERER'} =~ /$referer/i) {
            $check_referer = '1';
        last;
         }
      }
   }
   else {
      $check_referer = '1';
   }

   if ($check_referer != 1) {
      &error('bad_referer');
   }

}

sub get_date {

   @days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
   @months = ('January','February','March','April','May','June','July',
          'August','September','October','November','December');

   ($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 at $hour\:$min\:$sec";

}

sub parse_form {

   if ($ENV{'REQUEST_METHOD'} eq 'GET') {
      # Split the name-value pairs
      @pairs = split(/&/, $ENV{'QUERY_STRING'});
   }
   elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
      # Get the input
      read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 
      # Split the name-value pairs
      @pairs = split(/&/, $buffer);
   }
   else {
      &error('request_method');
   }

   foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);
 
      $name =~ tr/+/ /;
      $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

      # If they try to include server side includes, erase them, so they
      # aren't a security risk if the html gets returned.  Another 
      # security hole plugged up.

      $value =~ s/<!--(.|\n)*-->//g;

      # Create two associative arrays here.  One is a configuration array
      # which includes all fields that this form recognizes.  The other
      # is for fields which the form does not recognize and will report 
      # back to the user in the html return page and the e-mail message.
      # Also determine required fields.

      if ($name eq 'recipient' ||
      $name eq 'subject' ||
      $name eq 'email' ||
      $name eq 'FirstName' ||
      $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 '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 'FirstName' ||
          $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 {

   if ($CONFIG{'redirect'} =~ /http\:\/\/.*\..*/) {

      # If the redirect option of the form contains a valid url,
      # print the redirectional location header.

      print "Location: $CONFIG{'redirect'}\n\n";
   }
   else {

      print "Content-type: text/html\n\n";
      print "<html>\n <head>\n";

      # Print out title of page
      if ($CONFIG{'title'}) {
      print "  <title>$CONFIG{'title'}</title>\n";
      }
      else {
         print "  <title>Thank You</title>\n";
      }

      print " </head>\n <body";

      # Get Body Tag Attributes
      &body_attributes;

      # Close Body Tag
      print ">\n  <center>\n";

      if ($FORM{'thanka'}) {
         if ($FORM{'thankb'}) {
            print "   <h1>$FORM{'thanka'}\n";
            print " $FORM{'FirstName'}\n";
            print " $FORM{'thankb'}</h1>\n";
         }
      }
      else {
         print "   <h1>Elisabeth Waldo appreciates your <BR>Registration.</h1>\n";
      }

      print "This is a confirmation of your registration <BR>with $CONFIG{'recipient'} ";
      print " on <br>$date PST.<br><br>\n";
      print "<br>We welcome your comments and feedback.<br>\n";
      print "<br>Phone: 1-818-349-3431 <br><hr></center><br>\n";

# Table output to HTML added Don Killen 10/22/96
      print "<table cellspacing=2 cellpadding=1>";
      if ($CONFIG{'sort'} =~ /^order:.*,.*/) {
         $sort_order = $CONFIG{'sort'};
         $sort_order =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
         $sort_order =~ s/(\s+)?\n+(\s+)?//g;
         $sort_order =~ s/order://;
         @sorted_fields = split(/,/, $sort_order);
         foreach $sorted_field (@sorted_fields) {
            # Print the name and value pairs in FORM array to html.
            if ($FORM{$sorted_field}) {
               print "<tr><td align=right bgcolor=ffffff><b>$sorted_field: </b></td>";
               print "<td align=left bgcolor=ffffff>$FORM{$sorted_field}</td></tr>\n";
            }
         }
         print "</table><br clear=all>\n"
      }
      else {
         foreach $key (keys %FORM) {
            # Print the name and value pairs in FORM array to html.
            print "<b>$key:</b> $FORM{$key}<br>\n";
         }
      }
      print "<center><hr><br>\n";
      print "<br>Return to the <a href=\"$ENV{'HTTP_REFERER'}\">registration.</a><br>\n";
      print "</center><br></body>\n</html>";
   }
}

sub send_mail {
   # Open The Mail Program

   open(MAIL,"|$mailprog -t");

   print MAIL "To: $CONFIG{'recipient'}\n";
   print MAIL "From: $CONFIG{'email'} ($CONFIG{'FirstName'})\n";

   # Check for Message Subject
   if ($CONFIG{'subject'}) {
      print MAIL "Subject: $CONFIG{'subject'}\n\n";
   }
   else {
      print MAIL "Subject:ElisabethWaldoMusic.com Registration\n\n";
   }

   print MAIL "This is a new registration. \n";
   print MAIL "It was submitted by $CONFIG{'FirstName'} ($CONFIG{'email'}) \n ";
   print MAIL "on $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";
         }
      }
   }

   if ($CONFIG{'sort'} eq 'alphabetic') {
      foreach $key (sort keys %FORM) {
         # Print the name and value pairs in FORM array to mail.
         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) {
         # Print the name and value pairs in FORM array to mail.
         if ($FORM{$sorted_field}) {
            print MAIL "$sorted_field: $FORM{$sorted_field}\n";
         }
      }
   }
   else {
      foreach $key (keys %FORM) {
         # Print the name and value pairs in FORM array to html.
            print MAIL "$key: $FORM{$key}\n\n";
      }
   }

   print MAIL "---------------------------------------------------------------------------\n";

   # Send Any Environment Variables To Recipient.
   foreach $env_report (@env_report) {
      print MAIL "$env_report: $ENV{$env_report}\n";
   }

   close (MAIL);
}

# Send courtesy email to the visitor thanking him, etc. See individual forms for
# content which must be in 'txtA_to_visitor' and 'txtB_to_visitor' hidden fields.
#
sub send_courtesy {
   open (MAIL,"|$mailprog -t");
   print MAIL "To: $CONFIG{'email'} ($CONFIG{'FirstName'})\n";
   print MAIL "From: ElisabethWaldoMusic.com (admin\@elisabethwaldomusic.com)\n";

   if ($CONFIG{'subject'}) {
      print MAIL "Subject: $CONFIG{'subject'}\n\n";
      $subjflag = 1;
   }
   else {
      print MAIL "Subject: Your Registration Form - $date\n\n";
      $subjflag = 0;
   }
   print MAIL "On $date you filled out the \n";
   if ( $subjflag ) {
      print MAIL " $CONFIG{'subject'}.\n\n";
   }
   else {
      print MAIL "registration form at ElisabethWaldoMusic.com.\n\n";
   }
   if ($FORM{'texta'}) {
      print MAIL "Thank you for $FORM{'texta'}\n";
   }
   if ($FORM{'textb'}) {
      print MAIL "You will receive $FORM{'textb'}\n\n";
   }
   print MAIL "Regards,\n";
   print MAIL "Elisabeth Waldo\n";
   print MAIL "mailto:admin\@elisabethwaldo.com\n";
   print MAIL "---------------------------------------------------------------------------\n";
   close (MAIL);
}


sub error {

   ($error,@error_fields) = @_;
   print "Content-type: text/html\n\n";

   if ($error eq 'bad_referer') {
      print "<html>\n <head>\n  <title>Bad Referrer - Access Denied</title>\n </head>\n";
      print " <body>\n  <center>\n   <h1>Bad Referrer - Access Denied</h1>\n  </center>\n";
      print "The form that is trying to use this CGI Program\n";
      print "resides at: $ENV{'HTTP_REFERER'}, which is not allowed to access this cgi script.<p>\n";
      print "Sorry!\n";
      print "</body></html>\n";
   }
   elsif ($error eq 'request_method') {
      print "<html>\n <head>\n  <title>Error: Request Method</title>\n </head>\n";
      print "</head>\n <body";

      # Get Body Tag Attributes
      &body_attributes;

      # Close Body Tag
      print ">\n <center>\n\n";

      print "   <h1>Error: Request Method</h1>\n  </center>\n\n";
      print "The Request Method of the Form you submitted did not match\n";
      print "either GET or POST.  Please check the form, and make sure the\n";
      print "method= statement is in upper case and matches GET or POST.\n";
      print "<p><hr><p>\n";
      print "<ul>\n";
      print "<li><a href=\"$ENV{'HTTP_REFERER'}\">Back to the Submission Form</a>\n";
      print "</ul>\n";
      print "</body></html>\n";
   }
   elsif ($error eq 'missing_fields') {
      print "<html>\n <head>\n  <title>Error: Blank Fields</title>\n </head>\n";
      print " </head>\n <body";
      
      # Get Body Tag Attributes
      &body_attributes;
         
      # Close Body Tag
      print ">\n  <center>\n";
      print "   <h1>Error: Blank Fields</h1>\n\n";
      print "The following fields were left blank in your submission form:<p>\n";

      # Print Out Missing Fields in a List.
      print "<ul>\n";
      foreach $missing_field (@error_fields) {
         print "<li>$missing_field\n";
      }
      print "</ul>\n";

      # Provide Explanation for Error and Offer Link Back to Form.
      print "<p><hr><p>\n";
      print "These fields must be filled out before you can successfully submit\n";
      print "the form.  <B><BR>Please return to the <a href=\"$ENV{'HTTP_REFERER'}\">Registration Form</a> and try again.\n";
      print "</body></html>\n";
   }
   exit;
}

sub body_attributes {
   # Check for Background Color and Assorted Other Stuff
   if ($CONFIG{'bgcolor'})     { print " bgcolor=\"$CONFIG{'bgcolor'}\"";   }
   if ($CONFIG{'background'} =~ /http\:\/\/.*\..*/) { print " background=\"$CONFIG{'background'}\""; }
   if ($CONFIG{'link_color'})  { print " link=\"$CONFIG{'link_color'}\"";   }
   if ($CONFIG{'vlink_color'}) { print " vlink=\"$CONFIG{'vlink_color'}\""; }
   if ($CONFIG{'alink_color'}) { print " alink=\"$CONFIG{'alink_color'}\""; }
   if ($CONFIG{'text_color'})  { print " text=\"$CONFIG{'text_color'}\"";   }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0085 ]--