!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:     migrate.cgi (4.35 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
# Migrate some virtual server backup file

require './virtual-server-lib.pl';
$can = &can_migrate_servers();
$can || &error($text{'migrate_ecannot'});
&error_setup($text{'migrate_err'});
&ReadParseMime();
&require_migration();

# Parse source file input
$src = &parse_backup_destination("src", \%in, $can > 1, undef, undef);
($mode) = &parse_backup_url($src);
if ($mode == 0) {
    -r $src || &error($text{'migrate_efile'});
    }

if ($can < 3) {
    if (!$in{'user_def'}) {
        $in{'user'} =~ /^[a-z0-9\.\-\_]+$/i ||
            &error($text{'migrate_euser'});
        $user = $in{'user'};
        defined(getpwnam($in{'user'})) &&
            &error($text{'migrate_euserclash'});
        }
    if (!$in{'pass_def'}) {
        $pass = $in{'pass'};
        }
    }
$tmpl = &get_template($in{'template'});
&can_use_template($tmpl) || &error($text{'setup_etmpl'});
if ($can < 3) {
    # Parent can be chosen
    if (!$in{'parent_def'}) {
        $parent = &get_domain_by("user", $in{'parent'}, "parent", "");
        &can_config_domain($parent) || &error($text{'edit_ecannot'});
        }
    }
else {
    # This user's master domain
    $parent = &get_domain_by_user($base_remote_user);
    $parent && &can_edit_domain($parent) || &error($text{'edit_ecannot'});
    }
if ($parent && !$tmpl->{'for_sub'}) {
    &error($text{'migrate_etmplsub'});
    }
elsif (!$parent && !$tmpl->{'for_parent'}) {
    &error($text{'migrate_etmplparent'});
    }
$ipinfo = { };
($ipinfo->{'ip'}, $ipinfo->{'virt'}, $ipinfo->{'virtalready'}, $ipinfo->{'netmask'}) =
    &parse_virtual_ip($tmpl, $parent ? $parent->{'reseller'} :
                 &reseller_admin() ? $base_remote_user : undef);
if (&supports_ip6()) {
    ($ipinfo->{'ip6'}, $ipinfo->{'virt6'}, $ipinfo->{'virt6already'},
     $ipinfo->{'netmask6'}) =
        &parse_virtual_ip6($tmpl, $parent ? $parent->{'reseller'} :
                     &reseller_admin() ? $base_remote_user : undef);
    }
if (!$in{'prefix_def'}) {
    $in{'prefix'} =~ /^[a-z0-9\.\-]+$/i ||
        &error($text{'setup_eprefix'});
    $prefix = $in{'prefix'};
    }
$in{'email_def'} || $in{'email'} =~ /\S/ || &error($text{'setup_eemail'});

my @footer_action = &vui_footer_history_back();

&ui_print_unbuffered_header(undef, $text{'migrate_title'}, "");
# Download the file
$oldsrc = $src;
$nice = &nice_backup_url($oldsrc);
if ($mode == 5) {
    # Uploaded data .. save to temp file
    &$first_print(&text('migrate_uploading', $in{'src_file'}));
    $src = &transname();
    &open_tempfile(SRC, ">$src", 0, 1);
    &print_tempfile(SRC, $in{'src_upload'});
    &close_tempfile(SRC);
    @st = stat($src);
    &$second_print(&text('migrate_uploaded', &nice_size($st[7])));
    }
elsif ($mode > 0) {
    # Fetch from some server
    &$first_print(&text('migrate_downloading', $nice));
    $temp = &transname();
    $err = &download_backup($src, $temp);
    if ($err) {
        &$second_print(&text('migrate_edownload', $err));
        goto DONE;
        }
    $src = $temp;
    @st = stat($src);
    &$second_print(&text('migrate_downloaded', &nice_size($st[7])));
    }

# Validate the file
&$first_print($text{'migrate_validating'});
$vfunc = "migration_$in{'type'}_validate";
($err, $domain, $user, $pass) =
    &$vfunc($src, undef, $user, $parent, $prefix, $pass);
if ($err) {
    &$second_print(&text('migrate_evalidate', $err));
    goto DONE;
    }
elsif (&domain_name_clash($domain)) {
    &$second_print($text{'migrate_eclash'});
    goto DONE;
    }

@footer_action = ("", $text{'index_return'});
&$second_print($text{'setup_done'});

# Call the migration function
&lock_domain_name($domain);
&$first_print(&text('migrate_doing1', "<tt>$domain</tt>", $nice));
&$indent_print();
$mfunc = "migration_$in{'type'}_migrate";
@doms = &$mfunc($src, $domain, $user, $in{'webmin'}, $in{'template'},
        $ipinfo, $pass, $parent, $prefix,
        $in{'email_def'} ? undef : $in{'email'});
&unlock_domain_name($domain);
&run_post_actions();
&$outdent_print();

# Fix htaccess files
foreach my $d (@doms) {
    &fix_script_htaccess_files($d, &public_html_dir($d));
    }

# If this user is a reseller, grant any new domains to him
if (&reseller_admin()) {
    foreach my $d (@doms) {
        $d->{'reseller'} = $base_remote_user;
        &save_domain($d);
        }
    }

if (@doms) {
    $d = $doms[0];
    &$second_print(&text('migrate_ok', "edit_domain.cgi?dom=$d->{'id'}",
                                       "<tt>".&html_escape($in->{'dom'} || $d->{'dom'})."</tt>"));

    # Call any theme post command
    if (defined(&theme_post_save_domain)) {
        &theme_post_save_domain($d, 'create');
        }
    }
else {
    @footer_action = &vui_footer_history_back();
    &$second_print(&text('migrate_failed'));
    }

DONE:
&ui_print_footer(@footer_action);


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