!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/usr/share/usermin/mailbox/   drwxr-xr-x
Free 26.23 GB of 117.98 GB (22.23%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     import.cgi (3.02 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# Import addresses from a file
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%text, %in);

require './mailbox-lib.pl';
&ReadParseMime();
&error_setup($text{'import_err'});

# Get the data to import
my $data;
if ($in{'src'} == 0) {
    $in{'upload'} || &error($text{'import_eupload'});
    $data = $in{'upload'};
    }
else {
    $in{'paste'} =~ s/\r//g;
    $in{'paste'} =~ /\S/ || &error($text{'import_epaste'});
    $data = $in{'paste'};
    }

# Parse the data
my @addrs;
if ($in{'fmt'} eq 'csv') {
    # CSV or tab-separated format
    foreach my $l (split(/\n/, $data)) {
        next if ($l !~ /\S/);
        my @row;
        while($l =~ s/^\s*"([^"]*)",?(.*)/$2/ ||
              $l =~ s/^\s*'([^']*)',?(.*)/$2/ ||
              $l =~ s/^\s*"([^"]*)"\t?(.*)/$2/ ||
              $l =~ s/^\s*'([^']*)'\t?(.*)/$2/ ||
              $l =~ s/^\s*([^,]+),?(.*)/$2/ ||
              $l =~ s/^\s*([^\t]+)\t?(.*)/$2/) {
            push(@row, $1);
            }
        push(@addrs, [ $row[0], $row[1], int($row[2]) ]);
        }
    }
else {
    # Vcard
    eval "use Net::vCard";
    $@ && &error($text{'import_enetvcard'});
    my $temp = &transname();
    open(my $TEMP, ">", "$temp");
    print $TEMP $data;
    close($TEMP);
    my $cards = Net::vCard->loadFile($temp);
    &unlink_file($temp);
    foreach my $card (@$cards) {
        my $n = $card->givenName;
        $n .= " " if ($n);
        $n .= $card->familyName;
        next if (!$n);
        push(@addrs, [ $card->{'EMAIL'}->{'internet'}, $n, 0 ]);
        }
    }
@addrs || &error($text{'import_enone'});

# Update addresses, and tell user
&ui_print_header(undef, $text{'import_title'}, "");

print $text{'import_doing'},"<p>\n";

my %old = map { lc($_->[0]), $_ } &list_addresses();
print &ui_columns_start([ $text{'address_addr'}, $text{'address_name'},
              $text{'import_action'} ], 100);
foreach my $a (@addrs) {
    my $o = $old{lc($a->[0])};
    $a->[0] =~ s/^\s+//; $a->[0] =~ s/\s+$//;
    $a->[1] =~ s/^\s+//; $a->[1] =~ s/\s+$//;
    if ($a->[0] !~ /^\S+\@\S+$/) {
        # Invalid email
        print &ui_columns_row([ &html_escape($a->[0]),
                    &html_escape($a->[1]),
                    $text{'import_noemail'} ]);
        }
    elsif (!$o) {
        # Missing, need to add
        print &ui_columns_row([ &html_escape($a->[0]),
                    &html_escape($a->[1]),
                    $text{'import_add'} ]);
        &create_address($a->[0], $a->[1], $a->[2]);
        }
    elsif ($in{'dup'}) {
        if ($o->[1] ne $a->[1] && $o->[2] ne '') {
            # Exists but is different .. update
            print &ui_columns_row([ &html_escape($a->[0]),
                        &html_escape($a->[1]),
                        $text{'import_update'} ]);
            &modify_address($o->[2], $a->[0], $a->[1], $a->[2]);
            }
        elsif ($o->[1] ne $a->[1] && $o->[2] eq '') {
            # Exists but cannot be updated
            print &ui_columns_row([ &html_escape($a->[0]),
                        &html_escape($a->[1]),
                        $text{'import_readonly'} ]);
            }
        else {
            # Exists and is same
            print &ui_columns_row([ &html_escape($a->[0]),
                        &html_escape($a->[1]),
                        $text{'import_same'} ]);
            }
        }
    else {
        # Exists, skip
        print &ui_columns_row([ &html_escape($a->[0]),
                    &html_escape($a->[1]),
                    $text{'import_skip'} ]);
        }
    }
print &ui_columns_end();

&ui_print_footer("list_addresses.cgi", $text{'address_return'});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0045 ]--