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


Viewing file:     edit.cgi (6.11 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# edit.cgi
# Display settings for some dialer

require './ppp-client-lib.pl';
&ReadParse();
$conf = &get_config();
if ($in{'new'}) {
    &ui_print_header(undef, $text{'edit_title1'}, "");
    }
else {
    &ui_print_header(undef, $text{'edit_title2'}, "");
    $dialer = $conf->[$in{'idx'}];
    }
($ddialer) = grep { lc($_->{'name'}) eq 'dialer defaults' } @$conf;
if ($inherits = $dialer->{'values'}->{'inherits'}) {
    ($parent) = grep { lc($_->{'name'}) eq lc($inherits) } @$conf;
    }

if (lc($dialer->{'name'}) eq 'dialer defaults') {
    print "$text{'edit_ddesc'}<p>\n";
    }

print "<form action=save.cgi method=post>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_name'}</b></td> <td>\n";
if (lc($dialer->{'name'}) eq 'dialer defaults') {
    # Don't allow renaming of the defaults
    print $text{'index_defaults'};
    $defs++;
    }
elsif ($dialer->{'name'} =~ /^Dialer\s+(.*)$/ || $in{'new'}) {
    # Some normal dialer name
    print "<input name=dialer size=20 value='$1'>\n";
    }
else {
    # Some other oddly-named section
    print "<input name=name size=20 value='$dialer->{'name'}'>\n";
    }
print "</td>\n";

print &opt_input("Phone", $text{'edit_phone'}, 20);
print "</tr>\n";

print "<tr>\n";
print &opt_input("Username", $text{'edit_user'}, 20);
print &opt_input("Password", $text{'edit_pass'}, 20, "type=password");
print "</tr>\n";

print "<tr>\n";
print &opt_input("Dial Prefix", $text{'edit_prefix'}, 10);
print &yes_no_input("Stupid Mode", $text{'edit_stupid'}, 0);
print "</tr>\n";

print "<tr> <td><b>$text{'edit_other'}</b></td> <td colspan=3>\n";
for($i=1; $i<=4; $i++) {
    printf "<input name=other_%d size=20 value='%s'>\n",
        $i, $dialer->{'values'}->{'phone'.$i};
    }
print "</td> </tr>\n";

print "<tr> <td><b>$text{'edit_inherits'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=inherits_def value=1 %s> %s\n",
    $inherits ? "" : "checked", $text{'edit_def'};
printf "<input type=radio name=inherits_def value=0 %s> %s\n",
    $inherits ? "checked" : "", $text{'edit_from'};
print "<select name=inherits>\n";
foreach $c (@$conf) {
    next if ($c eq $dialer);
    printf "<option value='%s' %s>%s\n",
        $c->{'name'}, lc($inherits) eq lc($c->{'name'}) ? "selected":"",
        &dialer_name($c->{'name'});
    }
print "</select></td> </tr>\n";

# Modem options
print "<tr> <td colspan=4><hr></td> </tr>\n";

$modem = $dialer->{'values'}->{'modem'};
$dm = &get_default("Modem");
local $found = !$modem || $modem eq "/dev/modem";
print "<tr> <td><b>$text{'edit_serial'}</b></td>\n";
print "<td nowrap><select name=modem>\n";
printf "<option value='' %s>%s %s\n",
    $modem ? "" : "selected",
    $defs ? $text{'edit_none'} : $text{'edit_def'},
    $dm ? "($dm)" : "";
printf "<option value=/dev/modem %s>%s (%s)\n",
    $modem eq "/dev/modem" ? "selected" : "", $text{'edit_modem'},
    "/dev/modem";
foreach $t (sort { "$a$b" =~ /^\/dev\/ttyS(\d+)\/dev\/ttyS(\d+)$/ ? $1 <=> $2 : 0 } glob("/dev/ttyS[0-9]*")) {
    printf "<option value=%s %s>%s\n",
        $t, $modem eq $t ? "selected" : "",
        $t =~ /ttyS(\d+)$/ ? &text('edit_port', $1+1) : $t;
    $found++ if ($modem eq $t);
    }
printf "<option value=* %s>%s\n",
    $found ? "" : "selected", $text{'edit_otherm'};
print "</select>\n";
printf "<input name=otherm size=15 value='%s'></td>\n",
    $found ? "" : $modem;

print &opt_input("Baud", $text{'edit_baud'}, 6);
print "</tr>\n";

print "<tr> <td valign=top><b>$text{'edit_init'}</b></td> <td colspan=3>\n";
for($i=1; $i<=9; $i++) {
    printf "<input name=init_%s size=25 value='%s'>\n",
        $i, $dialer->{'values'}->{"init".$i};
    print "<br>\n" if (($i-1)%3 == 2);
    }
print "</td> </tr>\n";

print "<tr>\n";
print &yes_no_input("Carrier Check", $text{'edit_carrier'}, 1);
print &yes_no_input("Abort on Busy", $text{'edit_busy'}, 0);
print "</tr>\n";

print "<tr>\n";
print &opt_input("Dial Attempts", $text{'edit_dial'}, 4);
print &yes_no_input("Abort on No Dialtone", $text{'edit_dialtone'}, 1);
print "</tr>\n";

# Networking options
print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr>\n";
print &yes_no_input("Auto DNS", $text{'edit_dns'}, 1);
print &yes_no_input("Auto Reconnect", $text{'edit_reconnect'}, 1);
print "</tr>\n";

print "<tr>\n";
print &opt_input("Idle Seconds", $text{'edit_idle'}, 6);
print "</tr>\n";

print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
if ($in{'new'}) {
    print "<td><input type=submit value='$text{'create'}'></td>\n";
    }
else {
    print "<td><input type=submit value='$text{'save'}'></td>\n";
    print "<td align=right><input type=submit name=delete ",
          "value='$text{'delete'}'></td>\n";
    }
print "</tr></table></form>\n";

&ui_print_footer("", $text{'index_return'});

# opt_input(name, text, size, inputopts)
sub opt_input
{
local $n = lc($_[0]);
local $v = $dialer->{'values'}->{$n};
local $rv = "<td><b>$_[1]</b></td> <td nowrap>\n";
$rv .= sprintf "<input type=radio name='${n}_def' value=1 %s> %s\n",
        defined($v) ? "" : "checked",
        $defs ? $text{'edit_none'} : $text{'default'};
$rv .= sprintf "<input type=radio name='${n}_def' value=0 %s>\n",
        defined($v) ? "checked" : "";
$rv .= sprintf "<input $_[3] name='${n}' size=$_[2] value='%s'></td>\n", $v;
return $rv;
}

# yes_no_input(name, text, defmode)
sub yes_no_input
{
local $n = lc($_[0]);
local $val = $dialer->{'values'}->{$n};
local $dval = &get_default($_[0]);
local $d = $dval =~ /on|yes|1/i ? $text{'edit_yd'} :
       $dval =~ /off|no|0/i ? $text{'edit_nd'} :
       $_[2] ? $text{'edit_yd'} : $text{'edit_nd'};
local $rv = "<td><b>$_[1]</b></td> <td>\n";
$rv .= sprintf "<input type=radio name='$n' value=1 %s> %s\n",
    $val =~ /on|yes|1/i ? "checked" : "", $text{'yes'};
$rv .= sprintf "<input type=radio name='$n' value=0 %s> %s\n",
    $val =~ /off|no|0/i ? "checked" : "", $text{'no'};
$rv .= sprintf "<input type=radio name='$n' value=-1 %s> %s</td>\n",
    $val ? "" : "checked", $d;
return $rv;
}

# get_default(name)
sub get_default
{
return undef if ($defs);
if ($parent) {
    local $pv = $parent->{'values'}->{lc($_[0])};
    return $pv if (defined($pv));
    }
return $ddialer->{'values'}->{lc($_[0])};
}


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