HEX
Server: Apache/2.4.41 (FreeBSD) OpenSSL/1.0.2s mod_fcgid/2.3.9
System: FreeBSD salazo 12.0-RELEASE-p1303-ZFS hostBSD 12.0-RELEASE-p1303-ZFS DMR amd64
User: admin (1000)
PHP: 7.4.3
Disabled: NONE
Upload Files
File: /usr/local/www/apache24/cgi-bin/easytecc4/easytecc.pm
package easytecc;

BEGIN {
	if(-e '/etc/sudoers'){
		
		my $osversion = `/usr/bin/uname -K`;
		chomp $osversion;
		
		my $perl;
		
		if($osversion >= 1300000){
			
			$perl = '5.34';
		
		} elsif($osversion >= 1200000){
			
			$perl = '5.26';
		
		} elsif($osversion >= 1003000){
			
			$perl = '5.24';

		} else {
			
			$perl = '5.20';
			
		}
		
		@INC = (
				"/usr/iports/lib/perl5/site_perl",
				"/usr/iports/lib/perl5/amd64-freebsd-thread-multi",
				"/usr/iports/lib/perl5/$perl",
				"/usr/iports/lib/perl5/$perl/mach",
				"/usr/iports/lib/perl5/site_perl/mach/$perl",
				"/usr/local/lib/perl5/site_perl",
				"/usr/local/lib/perl5/amd64-freebsd-thread-multi",
				"/usr/local/lib/perl5/$perl",
				"/usr/local/lib/perl5/$perl/mach",
				"/usr/local/lib/perl5/site_perl/mach/$perl",
				"/usr/local/www/apache24/cgi-bin/easytecc4"
		);
				
			
	} else {
		push @INC, '/home/httpd/cgi-bin/easytecc4';
	}
}

use strict;
use IO::Socket;
$ENV{'PATH'} = '/usr/bin:/usr/sbin:/bin';
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};

sub extern_mx{
my $mxhost = `cat /etc/mxhost 2>/dev/null`;
chomp $mxhost;
return ($mxhost);
}

sub make_socket{
my $localhost = `resolveip -s localhost`;
chomp $localhost;
my $mxhost = extern_mx();

unless ($localhost =~ m#^(.*)$#) {
    die "'$localhost' has invalid characters.\n";
}
$localhost = $1;

unless ($mxhost =~ m#^(.*)$#) {
    die "'$mxhost' has invalid characters.\n";
}
$mxhost = $1;

my $socket=IO::Socket::INET->new(PeerAddr => $mxhost,
                              PeerPort => 6996,
                              LocalAddr => $localhost,
                              Proto    => 'tcp',
                              Type     => SOCK_STREAM,
                              Timeout  => 60 )
        or die "couldn't open port\n";

$socket->autoflush(1);
return($socket);
}

sub close_socket{
my $socket = shift;
close($socket);
}

sub encrypt{

        my ($passwordfile,$encpass) = @_;
        my $cyphertext = "";
        my $number = '';
    my $salt = 0;
    my @cypher = unpack('C*',$encpass);
    my @salt = ("43","112","120","36","96","94","68","43","62","15","89","12");

        foreach $number (@cypher){
                $number += $salt[$salt];
                $cyphertext .= pack('C*',$number);
                $salt++;
        }

        system("rm -f $passwordfile") if -e $passwordfile;

        open (CRYPT , ">>$passwordfile");
        print CRYPT $cyphertext;
        close(CRYPT);

}

1;