| Server IP : 172.67.134.114 / Your IP : 104.23.197.123 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/libexec/webmin/virtual-server/ |
Upload File : |
#!/usr/bin/perl
# Download the temp file created for a backup
require './virtual-server-lib.pl';
&ReadParse();
&error_setup($text{'backup_err'});
my $cbmode = &can_backup_domain();
$cbmode || &error($text{'backup_ecannot'});
my $origfile = $in{'file'};
$in{'file'} || &error($text{'backup_edownloadfile'});
&is_under_directory(&tempname_dir(), $in{'file'}) ||
&error($text{'backup_edownloadfile6'});
-r $in{'file'} || &error($text{'backup_edownloadfile5'});
$in{'file'} =~ s/^\/.*\///g || &error($text{'backup_edownloadfile2'});
$in{'file'} =~ /\.\./ && &error($text{'backup_edownloadfile7'});
$in{'file'} =~ /\0/ && &error($text{'backup_edownloadfile7'});
$in{'file'} =~ /^(\S+):(\S+\.(zip|tar|tar\.[a-z0-9]+))$/ ||
&error($text{'backup_edownloadfile3'});
$remote_user eq $1 || &error($text{'backup_edownloadfile4'});
my $tempfile = $2;
my @st = stat($origfile);
print "Content-type: application/octet-stream\n";
print "Content-Disposition: Attachment; filename=\"$tempfile\"\n";
print "Content-length: $st[7]\n";
print "\n";
&open_readfile(TEMP, $origfile);
&unlink_file($origfile);
my $bs = &get_buffer_size();
while(read(TEMP, $buf, $bs) > 0) {
print $buf;
}
close(TEMP);