!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/cfengine/   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_class.cgi (36.06 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# edit_class.cgi
# Edit options for a class in some section

require './cfengine-lib.pl';
use Config;
&ReadParse();
$conf = $in{'cfd'} ? &get_cfd_config() : &get_config();
$sec = $conf->[$in{'idx'}] if ($in{'idx'} ne '');
if ($in{'new'}) {
    &ui_print_header(undef, $sec ? $text{'edit_create2'} : $text{'edit_create1'}, "",
        "edit");
    $cls = { 'name' => 'any' };
    }
else {
    &ui_print_header(undef, $text{'edit_title'}, "", "edit");
    $cls = $sec->{'cls'}->[$in{'cidx'}];
    }

print "<form action=save_class.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 "<input type=hidden name=cidx value='$in{'cidx'}'>\n";
print "<input type=hidden name=type value='$in{'type'}'>\n";
print "<input type=hidden name=cfd value='$in{'cfd'}'>\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";

$type = $in{'type'} ? $in{'type'} : $sec->{'name'};
$t = $text{"section_".$type."_".$in{'cfd'}};
$t = $text{"section_".$type} if (!$t);
print "<tr> <td><b>$text{'edit_section'}</b></td> <td colspan=3>\n";
print $t ? "$t ($type)" : $type,"</td> </tr>\n";

print "<td><b>$text{'edit_class'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=class_def value=1 %s> %s\n",
    $cls->{'name'} eq 'any' ? 'checked' : '', $text{'edit_all'};
printf "<input type=radio name=class_def value=0 %s>\n",
    $cls->{'name'} eq 'any' ? '' : 'checked';
printf "<input name=class size=50 value='%s'></td> </tr>\n",
    $cls->{'name'} eq 'any' ? '' : $cls->{'name'};

$type = undef if ($in{'manual'});
if ($text{"type_".$type."_".$in{'cfd'}}) {
    print "<tr> <td colspan=4>",$text{"type_".$type."_".$in{'cfd'}},
          "</td> </tr>\n";
    }
elsif ($text{"type_".$type}) {
    print "<tr> <td colspan=4>",$text{"type_".$type},"</td> </tr>\n";
    }
if ($type eq 'links') {
    # Show links that would be created
    local @links = &parse_links($cls);
    print "<tr> <td valign=top><b>$text{'edit_links'}</b></td>\n";
    print "<td colspan=3><table border width=100%>\n";
    print "<tr $tb> <td><b>$text{'edit_linkfrom'}</b></td> ",
          "<td><b>$text{'edit_linktype'}</b></td> ",
          "<td><b>$text{'edit_linkover'}</b></td> ",
          "<td><b>$text{'edit_linkto'}</b></td> </tr>\n";
    $i = 0;
    foreach $l (@links, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=from_$i size=30 value='%s'></td>\n",
            $l->{'_linkfrom'};
        printf "<td><input type=checkbox name=type_$i value=1 %s> %s</td>\n", $l->{'_linktype'} =~ /^\+/ ? "checked" : "", $text{'yes'};
        printf "<td><input type=checkbox name=over_$i value=1 %s> %s</td>\n", $l->{'_linktype'} =~ /!$/ ? "checked" : "", $text{'yes'};
        printf "<td><input name=to_$i size=30 value='%s'></td>\n",
            $l->{'_linkto'};
        print "</tr>\n";
        $i++;
        }
    print "</table></td> </tr>\n";
    }
elsif ($type eq 'directories') {
    # Show directories that would be created
    local @dirs = &parse_directories($cls);
    print "<tr> <td colspan=4><table border width=100%>\n";
    print "<tr $tb> <td><b>$text{'edit_dir'}</b></td> ",
          "<td><b>$text{'edit_dirmode'}</b></td> ",
          "<td><b>$text{'edit_dirowner'}</b></td> ",
          "<td><b>$text{'edit_dirgroup'}</b></td> </tr>\n";
    $i = 0;
    foreach $d (@dirs, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=dir_$i size=40 value='%s'></td>\n",
            $d->{'_dir'};
        printf "<td><input name=mode_$i size=4 value='%s'></td>\n",
            &sname("mode", $d);
        printf "<td><input name=owner_$i size=13 value='%s'></td>\n",
            &sname("owner", $d);
        printf "<td><input name=group_$i size=13 value='%s'></td>\n",
            &sname("group", $d);
        print "</tr>\n";
        $i++;
        }
    print "</table></td> </tr>\n";
    }
elsif ($type eq "control" && !$in{'cfd'}) {
    # Show actionsequence definition
    local ($as) = &find("actionsequence", $cls->{'defs'});
    print "<tr> <td valign=top><b>$text{'edit_actionseq'}</b></td>\n";
    print "<td colspan=3><table cellpadding=0 cellspacing=0>\n";
    print "<tr> <td valign=top><textarea name=seq rows=10 cols=30>";
    foreach $v (@{$as->{'valuequoted'}}) {
        print &html_escape($v),"\n";
        }
    print "</textarea></td>\n";
    print "<td><select name=add size=10>\n";
    foreach $s ($in{'cfd'} ? @known_cfd_sections : @known_sections) {
        next if ($s eq "control");
        local $t = $text{"section_".$s."_".$in{'cfd'}};
        $t = $text{"section_".$s} if (!$t);
        printf "<option value=$s>$t ($s)\n";
        }
    print "</select><br>\n";
    print "<input type=button value='$text{'edit_actionadd'}' onClick='document.forms[0].seq.value += document.forms[0].add.options[document.forms[0].add.selectedIndex].value+\"\\n\"'>\n";
    print "</td></tr></table> </td> </tr>\n";

    # Show other global definitions
    print "<tr> <td><b>$text{'edit_controldef'}</b></td> ",
          "<td colspan=3><b>$text{'edit_controlvalue'}</b></td> </tr>\n";
    $i = 0;
    foreach $d (@{$cls->{'defs'}}, { }) {
        next if ($d->{'name'} eq 'actionsequence');
        print "<tr>\n";
        printf "<td><input name=def_$i size=15 value='%s'></td>\n",
            $d->{'name'};
        printf "<td colspan=3><input name=value_$i size=50 value='%s'></td>\n", join(" ", @{$d->{'valuequoted'}});
        print "</tr>\n";
        $i++;
        }
    }
elsif ($type eq "control" && $in{'cfd'}) {
    # Show cfd-specific control options
    local $run = &find_value("cfrunCommand", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controlrun'}</b></td> <td colspan=3>\n";
    printf "<input type=radio name=run_def value=1 %s> %s\n",
        $run ? "" : "checked", $text{'edit_none'};
    printf "<input type=radio name=run_def value=0 %s>\n",
        $run ? "checked" : "";
    printf "<input name=run size=50 value='%s'></td> </tr>\n", $run;

    local $elapsed = &find_value("IfElapsed", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controlelapsed'}</b></td> <td>\n";
    printf "<input type=radio name=elapsed_def value=1 %s> %s\n",
        defined($elapsed) ? "" : "checked", $text{'default'};
    printf "<input type=radio name=elapsed_def value=0 %s>\n",
        defined($elapsed) ? "checked" : "";
    printf "<input name=elapsed size=5 value='%s'></td>\n", $elapsed;

    local $max = &find_value("MaxConnections", $cls->{'defs'});
    print "<td><b>$text{'edit_controlmax'}</b></td> <td>\n";
    printf "<input type=radio name=max_def value=1 %s> %s\n",
        defined($max) ? "" : "checked", $text{'default'};
    printf "<input type=radio name=max_def value=0 %s>\n",
        defined($max) ? "checked" : "";
    printf "<input name=max size=5 value='%s'></td> </tr>\n", $max;

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

    local $auto = &find_value("AutoExecCommand", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controlauto'}</b></td> <td colspan=3>\n";
    printf "<input type=radio name=auto_def value=1 %s> %s\n",
        $auto ? "" : "checked", $text{'edit_none'};
    printf "<input type=radio name=auto_def value=0 %s>\n",
        $auto ? "checked" : "";
    printf "<input name=auto size=50 value='%s'></td></tr>\n", $auto;

    local $interval = &find_value("AutoExecInterval", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controlinterval'}</b></td> <td>\n";
    printf "<input type=radio name=interval_def value=1 %s> %s\n",
        defined($interval) ? "" : "checked", $text{'default'};
    printf "<input type=radio name=interval_def value=0 %s>\n",
        defined($interval) ? "checked" : "";
    printf "<input name=interval size=5 value='%s'></td> </tr>\n",$interval;

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

    local $dom = &find_value("domain", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controldom'}</b></td> <td>\n";
    printf "<input type=radio name=dom_def value=1 %s> %s\n",
        $dom ? "" : "checked", $text{'edit_none'};
    printf "<input type=radio name=dom_def value=0 %s>\n",
        $dom ? "checked" : "";
    printf "<input name=dom size=15 value='%s'></td>\n", $dom;

    local $log = &find_value("LogAllConnections", $cls->{'defs'});
    print "<td><b>$text{'edit_controllog'}</b></td>\n";
    printf "<td><input type=radio name=log value=1 %s> %s\n",
        lc($log) eq "true" ? "checked" : "", $text{'yes'};
    printf "<input type=radio name=log value=0 %s> %s\n",
        lc($log) eq "false" ? "checked" : "", $text{'no'};
    printf "<input type=radio name=log value=-1 %s> %s</td> </tr>\n",
        $log ? "" : "checked", $text{'default'};

    local @allow = &find_value("AllowConnectionsFrom", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controlallow'}</b></td>\n";
    printf "<td colspan=3><input type=radio name=allow_def value=1 %s> %s ",
        @allow ? "" : "checked", $text{'edit_controlall'};
    printf "<input type=radio name=allow_def value=0 %s>\n",
        @allow ? "checked" : "";
    printf "<input name=allow size=40 value='%s'></td> </tr>\n",
        join(" ", @allow);

    local @deny = &find_value("DenyConnectionsFrom", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controldeny'}</b></td>\n";
    printf "<td colspan=3><input type=radio name=deny_def value=1 %s> %s ",
        @deny ? "" : "checked", $text{'edit_controlnone'};
    printf "<input type=radio name=deny_def value=0 %s>\n",
        @deny ? "checked" : "";
    printf "<input name=deny size=40 value='%s'></td> </tr>\n",
        join(" ", @deny);

    local @skip = &find_value("SkipVerify", $cls->{'defs'});
    print "<tr> <td><b>$text{'edit_controlskip'}</b></td>\n";
    printf "<td colspan=3><input type=radio name=skip_def value=1 %s> %s ",
        @skip ? "" : "checked", $text{'edit_controlnone'};
    printf "<input type=radio name=skip_def value=0 %s>\n",
        @skip ? "checked" : "";
    printf "<input name=skip size=40 value='%s'></td> </tr>\n",
        join(" ", @skip);
    }
elsif ($type eq "grant" || $type eq "admit" || $type eq "deny") {
    # Allow editing of allowed or denied directories
    local (@grants, $grant);
    foreach $v (@{$cls->{'values'}}) {
        if ($v =~ /\//) {
            push(@grants, $grant = { 'dir' => $v });
            }
        else {
            push(@{$grant->{'hosts'}}, $v);
            }
        }

    print "<tr> <td valign=top><b>",$text{'edit_'.$type},"</b></td>\n";
    print "<td colspan=3><table border width=100%>\n";
    print "<tr $tb> <td><b>$text{'edit_grantdir'}</b></td> ",
          "<td><b>$text{'edit_granthosts'}</b></td> </tr>\n";
    $i = 0;
    foreach $g (@grants, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=dir_$i size=20 value='%s'></td>\n",
            $g->{'dir'};
        printf "<td><input name=hosts_$i size=40 value='%s'></td>\n",
            join(" ", @{$g->{'hosts'}});
        print "</tr>\n";
        $i++;
        }
    print "</table></td></tr>\n";
    }
elsif ($type eq "groups" || $type eq "classes") {
    # Allow editing of group definitions
    print "<tr> <td valign=top><b>$text{'edit_groups'}</b></td>\n";
    print "<td colspan=3><table border width=100%>\n";
    print "<tr $tb> <td><b>$text{'edit_groupname'}</b></td> ",
          "<td><b>$text{'edit_groupmems'}</b></td> </tr>\n";
    $i = 0;
    foreach $g (@{$cls->{'defs'}}, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=name_$i size=15 value='%s'></td>\n",
            $g->{'name'};
        printf "<td><input name=mems_$i size=45 value='%s'></td>\n",
            join(" ", @{$g->{'valuequoted'}});
        print "</tr>\n";
        $i++;
        }
    print "</table></td></tr>\n";
    }
elsif ($type eq "files") {
    # Allow editing of file permission settings
    local @files = &parse_directories($cls);
    local $i = 0;
    foreach $f (@files, $in{'newfiles'} || $in{'new'} ? ( { } ) : ( ) ) {
        print "<tr> <td colspan=4><hr></td> </tr>\n";

        print "<tr> <td><b>$text{'edit_filesdir'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=dir_def_$i value=1 %s> %s\n",
            $f->{'_dir'} ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=dir_def_$i value=0 %s>\n",
            $f->{'_dir'} ? "checked" : "";
        printf "<input name=dir_$i size=50 value='%s'></td> </tr>\n",
            $f->{'_dir'};

        local $owner = &sname("owner", $f);
        print "<tr> <td><b>$text{'edit_filesowner'}</b></td> <td>\n";
        printf "<input type=radio name=owner_def_$i value=1 %s> %s\n",
            $owner ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=owner_def_$i value=0 %s>\n",
            $owner ? "checked" : "";
        printf "<input name=owner_$i size=13 value='%s'></td>\n",
            $owner;

        local $group = &sname("group", $f);
        print "<td><b>$text{'edit_filesgroup'}</b></td> <td>\n";
        printf "<input type=radio name=group_def_$i value=1 %s> %s\n",
            $group ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=group_def_$i value=0 %s>\n",
            $group ? "checked" : "";
        printf "<input name=group_$i size=13 value='%s'></td> </tr>\n",
            $group;

        local $mode = &sname("mode", $f);
        print "<tr> <td><b>$text{'edit_filesmode'}</b></td> <td>\n";
        printf "<input type=radio name=mode_def_$i value=1 %s> %s\n",
            $mode ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=mode_def_$i value=0 %s>\n",
            $mode ? "checked" : "";
        printf "<input name=mode_$i size=15 value='%s'></td>\n",
            $mode;

        local $rec = &sname("recurse", $f);
        print "<td><b>$text{'edit_filesrec'}</b></td> <td>\n";
        printf "<input type=radio name=rec_def_$i value=1 %s> %s\n",
            $rec ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=rec_def_$i value=2 %s> %s\n",
            $rec eq 'inf' ? "checked" : "",
            $text{'edit_filesinf'};
        printf "<input type=radio name=rec_def_$i value=0 %s>\n",
            $rec && $rec ne 'inf' ? "checked" : "";
        printf "<input name=rec_$i size=6 value='%s'></td> </tr>\n",
            $rec eq 'inf' ? '' : $rec;

        local $include = &sname("include", $f);
        print "<tr> <td><b>$text{'edit_filesinclude'}</b></td> <td>\n";
        printf "<input type=radio name=include_def_$i value=1 %s> %s\n",
            $include ? "" : "checked", $text{'edit_filesall'};
        printf "<input type=radio name=include_def_$i value=0 %s>\n",
            $include ? "checked" : "";
        printf "<input name=include_$i size=15 value='%s'></td>\n",
            $include;

        local $exclude = &sname("exclude", $f);
        print "<td><b>$text{'edit_filesexclude'}</b></td> <td>\n";
        printf "<input type=radio name=exclude_def_$i value=1 %s> %s\n",
            $exclude ? "" : "checked", $text{'edit_filesnone'};
        printf "<input type=radio name=exclude_def_$i value=0 %s>\n",
            $exclude ? "checked" : "";
        printf "<input name=exclude_$i size=13 value='%s'></td></tr>\n",
            $exclude;

        local $acl = &sname("acl", $f);
        print "<tr> <td><b>$text{'edit_filesacl'}</b></td> <td>\n";
        printf "<input type=radio name=acl_def_$i value=1 %s> %s\n",
            $acl ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=acl_def_$i value=0 %s>\n",
            $acl ? "checked" : "";
        printf "<input name=acl_$i size=15 value='%s'></td>\n",
            $acl;

        local $action = &sname("action", $f);
        local @acts = ( "fixall", "fixdirs", "fixplain", "warnall", "warndirs", "warnplain", "touch", "linkchildren", "create", "compress", "alert" );
        print "<td><b>$text{'edit_filesact'}</b></td>\n";
        print "<td><select name=act_$i>\n";
        printf "<option value='' %s> %s\n",
            $action ? "" : "selected", $text{'default'};
        foreach $a (@acts) {
            printf "<option value=%s %s> %s\n",
                $a, $action eq $a ? "selected" : "",
                $text{"edit_files_$a"};
            }
        print "<option selected>$action\n"
            if ($action && &indexof($action, @acts) < 0);
        print "</select></td> </tr>\n";
        
        $i++;
        }
    if (!$in{'newfiles'} && !$in{'new'}) {
        print "<tr> <td colspan=4 align=right><hr><a href='edit_class.cgi?$in&newfiles=1'>$text{'edit_filesnew'}</a></td>\n";
        }
    }
elsif ($type eq "copy") {
    # Allow editing of file copy options
    local @copies = &parse_directories($cls);
    local $i = 0;
    foreach $f (@copies, $in{'newcopy'} || $in{'new'} ? ( { } ) : ( ) ) {
        print "<tr> <td colspan=4><hr></td> </tr>\n";

        print "<tr> <td><b>$text{'edit_copydir'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=dir_def_$i value=1 %s> %s\n",
            $f->{'_dir'} ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=dir_def_$i value=0 %s>\n",
            $f->{'_dir'} ? "checked" : "";
        printf "<input name=dir_$i size=50 value='%s'></td> </tr>\n",
            $f->{'_dir'};

        print "<tr> <td><b>$text{'edit_copydest'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input name=dest_$i size=50 value='%s'></td> </tr>\n",
            &sname("dest", $f);

        local $server = &sname("server", $f);
        print "<tr> <td><b>$text{'edit_copyserver'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=server_def_$i value=1 %s> %s\n",
            $server ? "" : "checked", $text{'edit_local'};
        printf "<input type=radio name=server_def_$i value=0 %s>\n",
            $server ? "checked" : "";
        printf "<input name=server_$i size=40 value='%s'></td> </tr>\n",
            $server;

        local $owner = &sname("owner", $f);
        print "<tr> <td><b>$text{'edit_filesowner'}</b></td> <td>\n";
        printf "<input type=radio name=owner_def_$i value=1 %s> %s\n",
            $owner ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=owner_def_$i value=0 %s>\n",
            $owner ? "checked" : "";
        printf "<input name=owner_$i size=13 value='%s'></td>\n",
            $owner;

        local $group = &sname("group", $f);
        print "<td><b>$text{'edit_filesgroup'}</b></td> <td>\n";
        printf "<input type=radio name=group_def_$i value=1 %s> %s\n",
            $group ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=group_def_$i value=0 %s>\n",
            $group ? "checked" : "";
        printf "<input name=group_$i size=13 value='%s'></td> </tr>\n",
            $group;

        local $mode = &sname("mode", $f);
        print "<tr> <td><b>$text{'edit_filesmode'}</b></td> <td>\n";
        printf "<input type=radio name=mode_def_$i value=1 %s> %s\n",
            $mode ? "" : "checked", $text{'edit_nochange'};
        printf "<input type=radio name=mode_def_$i value=0 %s>\n",
            $mode ? "checked" : "";
        printf "<input name=mode_$i size=15 value='%s'></td>\n",
            $mode;

        local $rec = &sname("recurse", $f);
        print "<td><b>$text{'edit_filesrec'}</b></td> <td>\n";
        printf "<input type=radio name=rec_def_$i value=1 %s> %s\n",
            $rec ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=rec_def_$i value=2 %s> %s\n",
            $rec eq 'inf' ? "checked" : "",
            $text{'edit_filesinf'};
        printf "<input type=radio name=rec_def_$i value=0 %s>\n",
            $rec && $rec ne 'inf' ? "checked" : "";
        printf "<input name=rec_$i size=6 value='%s'></td> </tr>\n",
            $rec eq 'inf' ? '' : $rec;

        local $size = &sname("size", $f);
        local $smode = $size =~ /^>/ ? 3 : $size =~ /^</ ? 2 :
                   $size ne '' ? 1 : 0;
        print "<tr> <td><b>$text{'edit_copysize'}</b></td>\n";
        print "<td colspan=3>\n";
        printf "<input type=radio name=size_mode_$i value=0 %s> %s\n",
            $smode == 0 ? "checked" : "", $text{'edit_none'};

        printf "<input type=radio name=size_mode_$i value=2 %s> %s\n",
            $smode == 2 ? "checked" : "", $text{'edit_copysize2'};
        printf "<input name=size2_$i size=8 value='%s'>\n",
            $smode == 2 ? substr($size, 1) : "";

        printf "<input type=radio name=size_mode_$i value=1 %s> %s\n",
            $smode == 1 ? "checked" : "", $text{'edit_copysize1'};
        printf "<input name=size1_$i size=8 value='%s'>\n",
            $smode == 1 ? $size : "";

        printf "<input type=radio name=size_mode_$i value=3 %s> %s\n",
            $smode == 3 ? "checked" : "", $text{'edit_copysize3'};
        printf "<input name=size3_$i size=8 value='%s'>\n",
            $smode == 3 ? substr($size, 1) : "";

        local $backup = &sname("backup", $f);
        print "<tr> <td><b>$text{'edit_copybackup'}</b></td> <td>\n";
        printf "<input type=radio name=backup_$i value=1 %s> %s\n",
            $backup eq "false" ? "" : "checked", $text{'yes'};
        printf "<input type=radio name=backup_$i value=0 %s> %s</td>\n",
            $backup eq "false" ? "checked" : "", $text{'no'};

        local $force = &sname("force", $f);
        print "<td><b>$text{'edit_copyforce'}</b></td> <td>\n";
        printf "<input type=radio name=force_$i value=1 %s> %s\n",
            $force eq "true" ? "checked" : "", $text{'yes'};
        printf"<input type=radio name=force_$i value=0 %s> %s</td>\n",
            $force eq "true" ? "" : "checked", $text{'no'};
        print "</tr>\n";

        local $purge = &sname("purge", $f);
        print "<tr> <td><b>$text{'edit_copypurge'}</b></td> <td>\n";
        printf "<input type=radio name=purge_$i value=1 %s> %s\n",
            $purge eq "true" ? "checked" : "", $text{'yes'};
        printf"<input type=radio name=purge_$i value=0 %s> %s</td>\n",
            $purge eq "true" ? "" : "checked", $text{'no'};

        local $action = &sname("action", $f);
        local @acts = ( "fix", "silent", "warn" );
        print "<td><b>$text{'edit_copyact'}</b></td>\n";
        print "<td><select name=act_$i>\n";
        printf "<option value='' %s> %s\n",
            $action ? "" : "selected", $text{'default'};
        foreach $a (@acts) {
            printf "<option value=%s %s> %s\n",
                $a, $action eq $a ? "selected" : "",
                $text{"edit_copy_$a"};
            }
        print "<option selected>$action\n"
            if ($action && &indexof($action, @acts) < 0);
        print "</select></td> </tr>\n";

        $i++;
        }
    if (!$in{'newcopy'} && !$in{'new'}) {
        print "<tr> <td colspan=4 align=right><hr><a href='edit_class.cgi?$in&newcopy=1'>$text{'edit_copynew'}</a></td>\n";
        }
    }
elsif ($type eq "disable") {
    # Editing files to disable or delete
    local @dis = &parse_directories($cls);
    local $i = 0;
    foreach $f (@dis, $in{'newdis'} || $in{'new'} ? ( { } ) : ( ) ) {
        print "<tr> <td colspan=4><hr></td> </tr>\n";

        print "<tr> <td><b>$text{'edit_disfile'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=dir_def_$i value=1 %s> %s\n",
            $f->{'_dir'} ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=dir_def_$i value=0 %s>\n",
            $f->{'_dir'} ? "checked" : "";
        printf "<input name=dir_$i size=50 value='%s'></td> </tr>\n",
            $f->{'_dir'};

        local $rot = &sname("rotate", $f);
        print "<tr> <td><b>$text{'edit_disrot'}</b></td>\n";
        print "<td colspan=3>\n";
        printf "<input type=radio name=rot_mode_$i value=0 %s> %s\n",
            $rot eq '' ? "checked" : "", $text{'edit_disrot0'};
        printf "<input type=radio name=rot_mode_$i value=1 %s> %s\n",
            $rot eq 'empty' || $rot eq 'truncate' ? "checked" : "",
            $text{'edit_disrot1'};
        printf "<input type=radio name=rot_mode_$i value=2 %s>\n",
            $rot =~ /\d/ ? "checked" : "";
        print &text('edit_disrot2', sprintf("<input name=rot_$i size=6 value='%s'>", $rot =~ /\d/ ? $rot : undef)),"</td> </tr>\n";

        local $type = &sname("type", $f);
        local @types = ( "plain", "file", "link" );
        print "<tr> <td><b>$text{'edit_distype'}</b></td>\n";
        print "<td><select name=type_$i>\n";
        printf "<option value='' %s> %s\n",
            $type ? "" : "selected", $text{'edit_dis_all'};
        foreach $t (@types) {
            printf "<option value=%s %s> %s\n",
                $t, $type eq $t ? "selected" : "",
                $text{"edit_dis_$t"};
            }
        print "<option selected>$type\n"
            if ($type && &indexof($type, @types) < 0);
        print "</select></td>\n";

        local $size = &sname("size", $f);
        local $smode = $size =~ /^>/ ? 3 : $size =~ /^</ ? 2 :
                   $size ne '' ? 1 : 0;
        print "<tr> <td><b>$text{'edit_dissize'}</b></td>\n";
        print "<td colspan=3>\n";
        printf "<input type=radio name=size_mode_$i value=0 %s> %s\n",
            $smode == 0 ? "checked" : "", $text{'edit_none'};

        printf "<input type=radio name=size_mode_$i value=2 %s> %s\n",
            $smode == 2 ? "checked" : "", $text{'edit_copysize2'};
        printf "<input name=size2_$i size=8 value='%s'>\n",
            $smode == 2 ? substr($size, 1) : "";

        printf "<input type=radio name=size_mode_$i value=1 %s> %s\n",
            $smode == 1 ? "checked" : "", $text{'edit_copysize1'};
        printf "<input name=size1_$i size=8 value='%s'>\n",
            $smode == 1 ? $size : "";

        printf "<input type=radio name=size_mode_$i value=3 %s> %s\n",
            $smode == 3 ? "checked" : "", $text{'edit_copysize3'};
        printf "<input name=size3_$i size=8 value='%s'>\n",
            $smode == 3 ? substr($size, 1) : "";

        $i++;
        }
    if (!$in{'newdis'} && !$in{'new'}) {
        print "<tr> <td colspan=4 align=right><hr><a href='edit_class.cgi?$in&newdis=1'>$text{'edit_disnew'}</a></td>\n";
        }
    }
elsif ($type eq "editfiles") {
    # Allow editing of file-editor script
    local $i = 0;
    foreach $e (@{$cls->{'lists'}},
            $in{'newedit'} || $in{'new'} ? ( { } ) : ( ) ) {
        print "<tr> <td colspan=4><hr></td> </tr>\n";

        local $ef = $e->{'values'}->[0];
        print "<tr> <td><b>$text{'edit_editfile'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=edit_def_$i value=1 %s> %s\n",
            $ef ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=edit_def_$i value=0 %s>\n",
            $ef ? "checked" : "";
        printf "<input name=edit_$i size=50 value='%s'></td> </tr>\n",
            $ef;

        print "<tr> <td valign=top><b>$text{'edit_editscript'}</b>",
              "</td> <td colspan=3>\n";
        print "<textarea name=script_$i rows=7 cols=70>";
        shift(@{$e->{'values'}});
        shift(@{$e->{'valuelines'}});
        shift(@{$e->{'valuequotes'}});
        foreach $l (&value_lines($e->{'values'}, $e->{'valuelines'},
                     $e->{'valuequotes'})) {
            print &html_escape($l),"\n";
            }
        print "</textarea></td> </tr>\n";

        $i++;
        }
    if (!$in{'newedit'} && !$in{'new'}) {
        print "<tr> <td colspan=4 align=right><hr><a href='edit_class.cgi?$in&newedit=1'>$text{'edit_editnew'}</a></td>\n";
        }
    }
elsif ($type eq "ignore") {
    # Display list of ignored files
    print "<tr> <td valign=top><b>$text{'edit_ignore'}</b></td>\n";
    print "<td colspan=3><textarea name=ignore rows=8 cols=50>";
    foreach $v (@{$cls->{'valuequoted'}}) {
        print &html_escape($v),"\n";
        }
    print "</textarea></td> </tr>\n";
    }
elsif ($type eq "processes") {
    # Show processes to kill
    local @procs = &parse_processes($cls);
    local $i = 0;
    foreach $p (@procs, $in{'newproc'} || $in{'new'} ? ( { } ) : ( ) ) {
        if ($p->{'_options'}) {
            # Don't edit SetOptionString lines
            $i++;
            next;
            }
        print "<tr> <td colspan=4><hr></td> </tr>\n";

        print "<tr> <td><b>$text{'edit_proc'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=proc_def_$i value=1 %s> %s\n",
            $p->{'_match'} ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=proc_def_$i value=0 %s>\n",
            $p->{'_match'} ? "checked" : "";
        printf "<input name=proc_$i size=50 value='%s'></td> </tr>\n",
            $p->{'_match'};

        local $sig = &sname("signal", $p);
        print "<tr> <td><b>$text{'edit_procsig'}</b></td>\n";
        print "<td><select name=sig_$i>\n";
        printf "<option value='' %s>%s\n",
            $sig ? "" : "selected", $text{'edit_none'};
        foreach $s (split(/\s+/, $Config{sig_name})) {
            printf "<option value=%s %s> $s\n",
                lc($s), lc($s) eq $sig ? "selected" : "", $s;
            }
        print "</select></td>\n";

        local $act = &sname("action", $p);
        print "<td><b>$text{'edit_procact'}</b></td>\n";
        print "<td><select name=act_$i>\n";
        printf "<option value='' %s>%s\n",
            !$act || $act eq 'signal' || $act eq 'do' ?
                "selected" : "", $text{"edit_proc_signal"};
        printf "<option value=bymatch %s>%s\n",
            $act eq "bymatch" ? "selected" : "",
            $text{"edit_proc_bymatch"};
        printf "<option value=warn %s>%s\n",
            $act eq "warn" ? "selected" : "",
            $text{"edit_proc_warn"};
        print "</select></td> </tr>\n";

        local $mat = &sname("matches", $p);
        local $smode = $mat =~ /^>/ ? 3 : $mat =~ /^</ ? 2 :
                   $mat ne '' ? 1 : 0;
        print "<tr> <td><b>$text{'edit_procmat'}</b></td>\n";
        print "<td colspan=3>\n";
        printf "<input type=radio name=mat_mode_$i value=0 %s> %s\n",
            $smode == 0 ? "checked" : "", $text{'edit_procmat0'};

        printf "<input type=radio name=mat_mode_$i value=2 %s> %s\n",
            $smode == 2 ? "checked" : "", $text{'edit_procmat2'};
        printf "<input name=mat2_$i size=8 value='%s'>\n",
            $smode == 2 ? substr($mat, 1) : "";

        printf "<input type=radio name=mat_mode_$i value=1 %s> %s\n",
            $smode == 1 ? "checked" : "", $text{'edit_procmat1'};
        printf "<input name=mat1_$i size=8 value='%s'>\n",
            $smode == 1 ? $mat : "";

        printf "<input type=radio name=mat_mode_$i value=3 %s> %s\n",
            $smode == 3 ? "checked" : "", $text{'edit_procmat3'};
        printf "<input name=mat3_$i size=8 value='%s'>\n",
            $smode == 3 ? substr($mat, 1) : "";

        print "<tr> <td><b>$text{'edit_procrestart'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=restart_def_$i value=1 %s> %s\n",
            $p->{'_restart'} ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=restart_def_$i value=0 %s>\n",
            $p->{'_restart'} ? "checked" : "";
        printf "<input name=restart_$i size=50 value='%s'></td></tr>\n",
            $p->{'_restart'};

        local $owner = &sname("owner", $p);
        print "<tr> <td><b>$text{'edit_procowner'}</b></td> <td>\n";
        printf "<input type=radio name=owner_def_$i value=1 %s> %s\n",
            $owner ? "" : "checked", "<tt>root</tt>";
        printf "<input type=radio name=owner_def_$i value=0 %s>\n",
            $owner ? "checked" : "";
        printf "<input name=owner_$i size=13 value='%s'></td>\n",
            $owner;

        local $group = &sname("group", $p);
        print "<td><b>$text{'edit_procgroup'}</b></td> <td>\n";
        printf "<input type=radio name=group_def_$i value=1 %s> %s\n",
            $group ? "" : "checked", "<tt>root</tt>";
        printf "<input type=radio name=group_def_$i value=0 %s>\n",
            $group ? "checked" : "";
        printf "<input name=group_$i size=13 value='%s'></td> </tr>\n",
            $group;

        $i++;
        }
    if (!$in{'newproc'} && !$in{'new'}) {
        print "<tr> <td colspan=4 align=right><hr><a href='edit_class.cgi?$in&newproc=1'>$text{'edit_procnew'}</a></td>\n";
        }
    }
elsif ($type eq "shellcommands") {
    # Edit list of executed shell commands
    local @cmds = &parse_directories($cls);
    print "<tr> <td colspan=4><table border width=100%>\n";
    print "<tr $tb> <td><b>$text{'edit_cmd'}</b></td> ",
          "<td><b>$text{'edit_cmdowner'}</b></td> ",
          "<td><b>$text{'edit_cmdgroup'}</b></td> ",
          "<td><b>$text{'edit_cmdtimeout'}</b></td> </tr>\n";
    $i = 0;
    foreach $c (@cmds, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=cmd_$i size=40 value='%s'></td>\n",
            $c->{'_dir'};
        printf "<td><input name=owner_$i size=13 value='%s'></td>\n",
            &sname("owner", $c);
        printf "<td><input name=group_$i size=13 value='%s'></td>\n",
            &sname("group", $c);
        printf"<td><input name=timeout_$i size=6 value='%s'> %s</td>\n",
            &sname("timeout", $c), "secs";
        print "</tr>\n";
        $i++;
        }
    print "</table></td> </tr>\n";
    }
elsif ($type eq "tidy") {
    # Allow editing of directories to tidy up
    local @dirs = &parse_directories($cls);
    local $i = 0;
    foreach $d (@dirs, $in{'newtidy'} || $in{'new'} ? ( { } ) : ( ) ) {
        print "<tr> <td colspan=4><hr></td> </tr>\n";

        print "<tr> <td><b>$text{'edit_tidydir'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=dir_def_$i value=1 %s> %s\n",
            $d->{'_dir'} ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=dir_def_$i value=0 %s>\n",
            $d->{'_dir'} ? "checked" : "";
        printf "<input name=dir_$i size=50 value='%s'></td> </tr>\n",
            $d->{'_dir'};

        local $pat = &sname("pattern", $d);
        print "<tr> <td><b>$text{'edit_tidypat'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=pat_def_$i value=1 %s> %s\n",
            $pat ? "" : "checked", $text{'edit_filesall'};
        printf "<input type=radio name=pat_def_$i value=0 %s>\n",
            $pat ? "checked" : "";
        printf "<input name=pat_$i size=50 value='%s'></td> </tr>\n",
            $pat;

        local $size = &sname("size", $d);
        print "<tr> <td><b>$text{'edit_tidysize'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=smode_$i value=0 %s> %s\n",
            $size eq '' ? "checked" : "", $text{'edit_tidysize0'};
        printf "<input type=radio name=smode_$i value=1 %s> %s\n",
            $size eq 'empty' ? "checked" : "",
            $text{'edit_tidysize1'};
        printf "<input type=radio name=smode_$i value=2 %s> %s\n",
            $size eq 'empty' || $size eq '' ? "" : "checked",
            $text{'edit_tidysize2'};
        printf "<input name=size_$i size=6 value='%s'></td> </tr>\n",
            $size eq 'empty' ? "" : $size;

        local $age = &sname("age", $d);
        local $type = &sname("type", $d);
        print "<tr> <td><b>$text{'edit_tidyage'}</b></td>\n";
        print "<td colspan=3>";
        printf "<input type=radio name=age_def_$i value=1 %s> %s\n",
            $age eq '' ? "checked" : "", $text{'edit_tidyage1'};
        printf "<input type=radio name=age_def_$i value=0 %s>\n",
            $age eq '' ? "" : "checked";
        local $asel = "<select name=type_$i>";
        $asel .= sprintf "<option value='' %s>%s\n",
                $type eq 'atime' || !$type ? "selected" : "",
                $text{'edit_tidyatime'};
        $asel .= sprintf "<option value=mtime %s>%s\n",
            $type eq 'mtime' ? "selected" : "", $text{'edit_tidymtime'};
        $asel .= sprintf "<option value=ctime %s>%s\n",
            $type eq 'ctime' ? "selected" : "", $text{'edit_tidyctime'};
        $asel .= "</select>\n";
        local $afield = "<input name=age_$i size=5 value='$age'>\n";
        print &text('edit_tidyage0', $asel, $afield),"</td> </tr>\n";

        local $rec = &sname("recurse", $d);
        print "<td><b>$text{'edit_filesrec'}</b></td> <td>\n";
        printf "<input type=radio name=rec_def_$i value=1 %s> %s\n",
            $rec ? "" : "checked", $text{'edit_none'};
        printf "<input type=radio name=rec_def_$i value=2 %s> %s\n",
            $rec eq 'inf' ? "checked" : "",
            $text{'edit_filesinf'};
        printf "<input type=radio name=rec_def_$i value=0 %s>\n",
            $rec && $rec ne 'inf' ? "checked" : "";
        printf "<input name=rec_$i size=6 value='%s'></td> </tr>\n",
            $rec eq 'inf' ? '' : $rec;

        $i++;
        }
    if (!$in{'newtidy'} && !$in{'new'}) {
        print "<tr> <td colspan=4 align=right><hr><a href='edit_class.cgi?$in&newtidy=1'>$text{'edit_tidynew'}</a></td>\n";
        }
    }
elsif ($type eq "miscmounts") {
    # Display filesystems to mount
    local @mnts = &parse_miscmounts($cls);
    print "<tr> <td colspan=4><table border width=100%>\n";
    print "<tr $tb> <td><b>$text{'edit_miscsrc'}</b></td> ",
          "<td><b>$text{'edit_miscdest'}</b></td> ",
          "<td><b>$text{'edit_miscmode'}</b></td> </tr>\n";
    local $i = 0;
    foreach $m (@mnts, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=src_$i size=30 value='%s'></td>\n",
            $m->{'_src'};
        printf "<td><input name=dest_$i size=30 value='%s'></td>\n",
            $m->{'_dest'};
        printf "<td><input name=mode_$i size=10 value='%s'></td>\n",
            &sname("mode", $m);
        print "</tr>\n";
        $i++;
        }
    print "</table></td></tr>\n";
    }
elsif ($type eq "resolve") {
    # Display nameserver options
    local (@ns, @other);
    for($i=0; $i<@{$cls->{'values'}}; $i++) {
        if ($cls->{'valuequotes'}->[$i]) {
            push(@other, $cls->{'values'}->[$i]);
            }
        else {
            push(@ns, $cls->{'values'}->[$i]);
            }
        }
    print "<tr> <td valign=top><b>$text{'edit_resns'}</b></td>\n";
    print "<td><textarea name=ns rows=4 cols=20>",
        join("\n", @ns),"</textarea></td>\n";

    print "<td valign=top><b>$text{'edit_resother'}</b></td>\n";
    print "<td><textarea name=other rows=4 cols=20>",
        join("\n", @other),"</textarea></td> </tr>\n";
    }
elsif ($type eq "defaultroute") {
    # Display the default route
    printf "<tr> <td><b>$text{'edit_route'}</b></td>\n";
    printf "<td><input name=route size=25 value='%s'></td> </tr>\n",
        $cls->{'values'}->[0];
    }
elsif ($type eq "required" || $type eq "disks") {
    # Display filesystems to check
    local @reqs = &parse_directories($cls);
    print "<tr> <td colspan=4><table border>\n";
    print "<tr $tb> <td><b>$text{'edit_reqfs'}</b></td> ",
          "<td><b>$text{'edit_reqfree'}</b></td> </tr>\n";
    local $i = 0;
    foreach $r (@reqs, { }) {
        print "<tr $cb>\n";
        printf "<td><input name=fs_$i size=40 value='%s'></td> <td>\n",
            $r->{'_dir'};
        local $free = &sname("freespace", $r);
        printf "<input type=radio name=free_def_$i value=1 %s> %s\n",
            $free eq '' ? "checked" : "", $text{'edit_none'};
        printf "<input type=radio name=free_def_$i value=0 %s>\n",
            $free eq '' ? "" : "checked";
        printf "<input name=free_$i size=10 value='%s'></td>\n", $free;
        print "</tr>\n";
        print "</tr>\n";
        $i++;
        }
    print "</table></td></tr>\n";
    }
else {
    # Allow editing of class manually
    if (!$in{'new'}) {
        $lref = &read_file_lines($cls->{'file'});
        local $st = $cls->{'line'};
        local $en = $cls->{'eline'};
        if ($lref->[$st] =~ /^\s*(\S+)::\s*$/ && $1 eq $cls->{'name'}) {
            $st++;
            }
        print "<tr> <td colspan=4><b>",&text('edit_manualtext2',
                $st, $en, "<tt>$cls->{'file'}</tt>"),"</b>\n";
        print "<br><textarea name=manual rows=15 cols=70>\n";
        for($i=$st; $i<=$en; $i++) {
            print &html_escape($lref->[$i]),"\n";
            }
        print "</textarea></td> </tr>\n";
        }
    else {
        print "<tr> <td colspan=4><b>$text{'edit_manualtext'}</b>\n";
        print "<br><textarea name=manual rows=15 cols=70>\n";
        print "</textarea></td> </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=middle><input type=submit name=manualmode ",
          "value='$text{'edit_manual'}'></td>\n" if (!$in{'manual'});
    print "<td align=right><input type=submit name=delete ",
          "value='$text{'delete'}'></td>\n";
    }
print "</tr></table>\n";
print "</form>\n";

if ($in{'cfd'}) {
    &ui_print_footer("edit_cfd.cgi", $text{'cfd_return'},
        "", $text{'index_return'});
    }
else {
    &ui_print_footer("", $text{'index_return'});
    }

# sname(name, &hash)
sub sname
{
local $i;
for($i=length($_[0]); $i>0; $i--) {
    local $s = substr($_[0], 0, $i);
    return $_[1]->{$s} if (defined($_[1]->{$s}));
    }
return undef;
}


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