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

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/libexec/webmin/usermin/   drwxr-xr-x
Free 3.83 GB of 27.03 GB (14.18%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     change_bind.cgi (3.18 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# change_bind.cgi
# Update the binding IP address and port for miniserv

require './usermin-lib.pl';
$access{'bind'} || &error($text{'acl_ecannot'});
use Socket;
&ReadParse();
&get_usermin_miniserv_config(\%miniserv);
%oldminiserv = %miniserv;
&error_setup($text{'bind_err'});

# Validate inputs
for($i=0; defined($in{"ip_def_$i"}); $i++) {
    next if (!$in{"ip_def_$i"});
    if ($in{"ip_def_$i"} == 1) {
        $ip = "*";
        }
    else {
        $ip = $in{"ip_$i"};
        &check_ipaddress($ip) ||
            $in{'ipv6'} && &check_ip6address($ip) ||
            &error(&text('bind_eip2', $ip));
        }
    if ($in{"port_def_$i"} == 1) {
        $port = $in{"port_$i"};
        $port =~ /^\d+$/ && $port < 65536 ||
            &error(&text('bind_eport2', $port));
        }
    else {
        $port = "*";
        }
    push(@sockets, [ $ip, $port ]);
    push(@ports, $port) if ($port && $port ne "*");
    }
@sockets || &error($text{'bind_enone'});
$in{'hostname_def'} || $in{'hostname'} =~ /^[a-z0-9\.\-]+$/i ||
    &error($text{'bind_ehostname'});
if ($in{'ipv6'}) {
    eval "use Socket6";
    $@ && &error(&text('bind_eipv6', "<tt>Socket6</tt>"));
    }

# For any new ports, check if they are already in use
@oldports = split(/\s+/, $in{'oldports'});
@newports = &unique(grep { &indexof($_, @oldports) < 0 } @ports);
if (&has_command("lsof")) {
        foreach my $p (@newports) {
                $out = &backquote_command("lsof -t -i tcp:$p 2>/dev/null");
                if ($out =~ /\d+/) {
                        &error(&text('bind_elsof', $p));
                        }
                }
        }

# Update config file
&lock_file($usermin_miniserv_config);
$first = shift(@sockets);
$miniserv{'port'} = $first->[1];
if ($first->[0] eq "*") {
    delete($miniserv{'bind'});
    }
else {
    $miniserv{'bind'} = $first->[0];
    }
$miniserv{'sockets'} = join(" ", map { "$_->[0]:$_->[1]" } @sockets);
$miniserv{'ipv6'} = $in{'ipv6'};
if ($in{'listen_def'}) {
    delete($miniserv{'listen'});
    }
else {
    $miniserv{'listen'} = $in{'listen'};
    }
if ($in{'hostname_def'}) {
    delete($miniserv{'host'});
    }
else {
    $miniserv{'host'} = $in{'hostname'};
    }
&put_usermin_miniserv_config(\%miniserv);
&unlock_file($usermin_miniserv_config);

# Attempt to re-start miniserv
$SIG{'TERM'} = 'ignore';
&system_logged("$config{'usermin_dir'}/stop >/dev/null 2>&1 </dev/null");
$temp = &transname();
$rv = &system_logged("$config{'usermin_dir'}/start >$temp 2>&1 </dev/null");
$out = &read_file_contents($temp);
$out =~ s/^Starting Usermin server in.*\n//;
$out =~ s/at.*line.*//;
unlink($temp);
if ($rv) {
    # Failed! Roll back config and start again
    &lock_file($usermin_miniserv_config);
    &put_usermin_miniserv_config(\%oldminiserv);
    &unlock_file($usermin_miniserv_config);
    &system_logged("$config{'usermin_dir'}/start >/dev/null 2>&1 </dev/null");
    &error(&text('bind_erestart', $out));
    }

# If possible, open the new ports
foreach my $mod ("firewall", "firewalld") {
    if (&foreign_check($mod) && $in{'firewall'}) {
        if (@newports) {
            &clean_environment();
            $ENV{'WEBMIN_CONFIG'} = $config_directory;
            &system_logged(
                &module_root_directory($mod)."/open-ports.pl ".
                    join(" ", map { $_.":".($_+10) } @newports).
                    " >/dev/null 2>&1");
            &reset_environment();
            }
        }
    }

&webmin_log("bind", undef, undef, \%in);

&redirect("");


:: 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 #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0032 ]--