!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.65 GB of 117.98 GB (22.59%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     address_chooser.cgi (5.09 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# address_chooser.cgi
# Display a list of entries from the address book
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%text, %in, %uconfig);

our $trust_unknown_referers = 1;
require './mailbox-lib.pl';
&ReadParse();

&popup_header($text{'address_choose'}, undef,
    "onLoad='document.forms[0].search.focus()'");
print <<EOF;
<script>
function makeaddress(a, n)
{
if (n == "") {
    // An address without a name
    return "<"+a+">";
    }
else if (n.indexOf(",") != -1) {
    // A name with a comma in it
    return "\\""+n+"\\" <"+a+">";
    }
else {
    // A name without a comma
    return n+" <"+a+">";
    }
}

// Add an address to the list
function newaddress(a, n)
{
av = makeaddress(a, n);
if (top.opener.ifield.value == "") {
    top.opener.ifield.value = av;
    }
else {
    top.opener.ifield.value += ","+av;
    }
}

// Remove an address from the list
function oldaddress(a, n)
{
av = makeaddress(a, n);
curr = top.opener.ifield.value;
idx1 = curr.indexOf(av+",");
idx2 = curr.indexOf(","+av);
if (curr == av) {
    // Address only!
    curr = "";
    }
else if (idx1 != -1) {
    // Found the address, in string
    curr = curr.substring(0, idx1)+curr.substring(idx1+av.length+1);
    }
else if (idx2 != -1) {
    // Found the ,address in string
    curr = curr.substring(0, idx2)+curr.substring(idx2+av.length+1);
    }
else {
    // Look for address only
    sp = curr.split(",");
    curr = "";
    for(j=0; j<sp.length; j++) {
        if (sp[j].indexOf(a) == -1) {
            if (curr == "") {
                curr = sp[j];
                }
            else {
                curr += ","+sp[j];
                }
            }
        }
    }
top.opener.ifield.value = curr;
}

// Called when an address has been clicked on
function clickaddress(a, n, f)
{
if (f.checked) {
    newaddress(a, n);
    }
else {
    oldaddress(a, n);
    }
}

function select(a, n)
{
if ($in{'mode'} == 2) {
    // Strip off domain
    at = a.indexOf("@");
    if (at > 0)
        a = a.substr(0, at);
    }
if (top.opener.rfield != null) {
    // Put real name in separate field
    top.opener.ifield.value = a;
    top.opener.rfield.value = n;
    }
else {
    // Combine to single field
    if (n == "") {
        av = "<"+a+">";
        }
    else {
        av = n+" <"+a+">";
        }
    top.opener.ifield.value = av;
    }
window.close();
}
</script>
EOF

# Find addresses and groups
my @addrs = &list_addresses();
my $addrs_count;
my @agroups;
my %mems;
if ($in{'search'}) {
    my $s = $in{'search'};
    @addrs = grep { $_->[0] =~ /\Q$s\E/i || $_->[1] =~ /\Q$s\E/i } @addrs;
    }
if ($in{'mode'}) {
    @addrs = grep { $_->[3] } @addrs;
    $addrs_count = scalar(@addrs);
    }
else {
    if (!$uconfig{'from_in_to'}) {
        @addrs = grep { !$_->[3] } @addrs;
        }
    $addrs_count = scalar(@addrs);
    @agroups = &list_address_groups();
    if ($in{'search'}) {
        my $s = $in{'search'};
        @agroups = grep { $_->[0] =~ /\Q$s\E/i ||
                  $_->[1] =~ /\Q$s\E/i } @agroups;
        }
    foreach my $a (@agroups) {
        push(@addrs, [ $a->[0] ]);
        $mems{$a->[0]} = [ &split_addresses($a->[1]) ];
        }
    }

# Show search form
if (@addrs || $in{'search'}) {
    print &ui_form_start("address_chooser.cgi", "post");
    print "<b>$text{'address_search'}</b>\n";
    print &ui_textbox("search", $in{'search'}, 20);
    print &ui_hidden("mode", $in{'mode'});
    print &ui_hidden("addr", $in{'addr'});
    print &ui_submit($text{'address_ok'});
    print &ui_form_end();
    }

# Show list of addresses
my %infield;
my $href;
if (@addrs) {
    my @sp = &split_addresses(&decode_mimewords($in{'addr'}));
    for(my $i=0; $i<@sp; $i++) {
        $infield{$sp[$i]->[0]} = $i;
        }
    print "<form><table width=100%>\n";
    print "<tr>\n";
    print "<td><br></td>\n" if (!$in{'mode'});
    print "<td><b>$text{'address_addr'}</b></td>\n";
    print "<td><b>$text{'address_name'}</b></td>\n";
    if ($in{'mode'} == 0) {
        print "<td></td>\n";
        }
    print "</tr>\n";
    my $i = 0;
    foreach my $a (@addrs) {
        if ($i == $addrs_count && $i) {
            print "<tr> <td><br></td>\n";
            print "<td><b>$text{'address_group'}</b></td>\n";
            print "<td><b>$text{'address_members'}</b></td></tr>\n";
            }
        print "<tr>\n";
        if ($in{'mode'} == 0) {
            printf "<td><input type=checkbox name=addr_$i value='%s' onClick='clickaddress(\"%s\", \"%s\", this)' %s>", &html_escape($a->[1]), &html_escape($a->[0]), &html_escape($a->[1]), defined($infield{$a->[0]}) ? "checked" : "";
            $href = "<a href='' onClick='cb = document.forms[1].addr_$i; cb.checked = !cb.checked; clickaddress(\"".&html_escape($a->[0])."\", \"".&html_escape($a->[1])."\", cb); return false'>";
            }
        else {
            $href = "<a href='' onClick='select(\"".&html_escape($a->[0])."\", \"".&html_escape($a->[1])."\"); return false'>";
            }
        if ($i >= $addrs_count) {
            print "<td>$href",$a->[0],"</a></td>\n";
            my $m = @{$mems{$a->[0]}};
            print "<td>$href",&text('address_m', $m),"</a></td>\n";
            }
        else {
            print "<td>$href$a->[0]</a></td>\n";
            print "<td>$href",($a->[1] ? $a->[1] : "<br>"),"</a></td>\n";
            }
        if ($in{'mode'} == 0) {
            # Show button to select just this one
            print "<td><a href='' onClick='select(\"".&html_escape($a->[0])."\", \"".&html_escape($a->[1])."\"); return false'><img src=images/ok.gif border=0></a></td>\n";

            }
        print "</tr>\n";
        $i++;
        }
    print "</table></form>\n";
    }
elsif ($in{'search'}) {
    print "<b>$text{'address_none2'}</b> <p>\n";
    }
else {
    print "<b>$text{'address_none'}</b> <p>\n";
    }
&popup_footer();

:: 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.004 ]--