!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/usr/share/webmin/virtual-server/   drwxrwxr-x
Free 28.64 GB of 117.98 GB (24.28%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     save_database.cgi (4.4 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# Create or delete a database

require './virtual-server-lib.pl';
&ReadParse();
$d = &get_domain($in{'dom'});
$d || &error($text{'edit_egone'});
&can_edit_domain($d) || &error($text{'edit_ecannot'});
&can_edit_databases($d) || &error($text{'databases_ecannot'});
$tmpl = &get_template($d->{'template'});

if ($in{'ui_dbwarn'}) {
    # If dismissing a warning
    &merge_domain_config($d, { ui_dbwarn => 1 });
    &lock_domain($d);
    &save_domain($d);
    &unlock_domain($d);
    &redirect(&get_referer_relative());
    exit;
    }

if ($in{'new'}) {
    # Create one, after checking for clashes
    &error_setup($text{'database_err'});
    ($dleft, $dreason, $dmax) = &count_feature("dbs");
    $dleft == 0 && &error($text{'database_emax'});

    # Append prefix, if any
    if ($tmpl->{'mysql_suffix'} ne "none") {
        $prefix = &substitute_domain_template(
                $tmpl->{'mysql_suffix'}, $d);
        $prefix = &fix_database_name($prefix, $in{'type'});
        if ($in{'name'} !~ /^\Q$prefix\E/i) {
            $in{'name'} = $prefix.$in{'name'};
            }
        }

    # Validate name
    $in{'name'} = lc($in{'name'});
    $err = &validate_database_name($d, $in{'type'}, $in{'name'});
    &error($err) if ($err);

    # Parse type-specific options
    if (&indexof($in{'type'}, &list_database_plugins()) < 0) {
        # Core DB type
        $ofunc = "creation_parse_$in{'type'}";
        if ($in{'new'} && defined(&$ofunc)) {
            $opts = &$ofunc($d, \%in);
            }
        }
    else {
        # Plugin type options
        if ($in{'new'} &&
            &plugin_defined($in{'type'}, "creation_parse")) {
            $opts = &plugin_call($in{'type'}, "creation_parse",
                         $d, \%in);
            }
        }

    if (&indexof($in{'type'}, &list_database_plugins()) >= 0) {
        &plugin_call($in{'type'}, "database_clash", $d, $in{'name'}) &&
            &error($text{'database_eclash'});
        }
    else {
        $cfunc = "check_".$in{'type'}."_database_clash";
        &$cfunc($d, $in{'name'}) &&
            &error($text{'database_eclash'});
        }

    # Go for it
    &ui_print_header(&domain_in($d), $text{'database_title1'}, "");
    if (&indexof($in{'type'}, &list_database_plugins()) >= 0) {
        &plugin_call($in{'type'}, "database_create", $d, $in{'name'},
                 $opts);
        }
    else {
        $crfunc = "create_".$in{'type'}."_database";
        &$crfunc($d, $in{'name'}, $opts);
        }
    &save_domain($d);
    &refresh_webmin_user($d);
    &run_post_actions();
    &webmin_log("create", "database", $in{'name'},
            { 'type' => $in{'type'}, 'dom' => $d->{'dom'} });
    }
elsif ($in{'delete'} && !$in{'confirm'}) {
    # Ask the user if he wants to delete
    &ui_print_header(&domain_in($d), $text{'database_title3'}, "");
    print "<center>",&text('database_rusure', $in{'name'}),"<p>\n";
    print &ui_form_start("save_database.cgi", "post");
    foreach $i ("dom", "name", "type", "delete") {
        print &ui_hidden($i, $in{$i}),"\n";
        }
    print &ui_submit($text{'database_ok'}, "confirm"),"</center>\n";
    print &ui_form_end();
    }
elsif ($in{'delete'}) {
    # Delete now
    if ($in{'name'} eq $d->{'db'} && !&can_edit_database_name()) {
        # Not allowed according to nodbname
        &error($text{'database_edbdef'});
        }
    &ui_print_header(&domain_in($d), $text{'database_title3'}, "");
    if (&indexof($in{'type'}, &list_database_plugins()) >= 0) {
        &plugin_call($in{'type'}, "database_delete", $d, $in{'name'});
        }
    else {
        $dfunc = "delete_".$in{'type'}."_database";
        &$dfunc($d, $in{'name'});
        }
    &save_domain_print($d);
    &refresh_webmin_user($d);
    &run_post_actions();
    &webmin_log("delete", "database", $in{'name'},
            { 'type' => $in{'type'}, 'dom' => $d->{'dom'} });
    }
elsif ($in{'disc'}) {
    # Remove from server's list
    &ui_print_header(&domain_in($d), $text{'database_title4'}, "");
    @dbs = split(/\s+/, $d->{'db_'.$in{'type'}});
    @dbs = grep { $_ ne $in{'name'} } @dbs;
    $d->{'db_'.$in{'type'}} = join(" ", @dbs);

    # Call the revoke function to actually remove access
    $gfunc = "revoke_".$in{'type'}."_database";
    if (defined(&$gfunc)) {
        &$gfunc($d, $in{'name'});
        }

    &save_domain_print($d);
    &refresh_webmin_user($d);
    &run_post_actions();
    &webmin_log("export", "database", $in{'name'},
            { 'type' => $in{'type'}, 'dom' => $d->{'dom'} });
    }
elsif ($in{'manage'}) {
    # Just redirect to module to manage
    ($db) = grep { $_->{'name'} eq $in{'name'} &&
               $_->{'type'} eq $in{'type'} } &domain_databases($d);
    &redirect($db->{'link'});
    exit;
    }

&ui_print_footer("list_databases.cgi?dom=$in{'dom'}", $text{'databases_return'},
         &domain_footer_link($d),
         "", $text{'index_return'});

sub save_domain_print
{
&$first_print($text{'setup_save'});
&save_domain($_[0]);
&$second_print($text{'setup_done'});
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0046 ]--