[ Avaa Bypassed ]




Upload:

Command:

www-data@3.128.247.220: ~ $
#!/usr/bin/perl
# delete_mail.cgi
# Delete, mark, move or copy multiple messages

require './mailboxes-lib.pl';
&ReadParse();
&can_user($in{'user'}) || &error($text{'mail_ecannot'});
@delete = sort { $a <=> $b } split(/\0/, $in{'d'});
@folders = &list_user_folders($in{'user'});
$folder = $folders[$in{'folder'}];

if ($in{'mark1'} || $in{'mark2'}) {
	# Marking emails with some status
	@delete || &error($text{'delete_emnone'});
	@mail = &mailbox_list_mails($delete[0], $delete[@delete-1], $folder);
	dbmopen(%read, &user_read_dbm_file($in{'user'}), 0600);
	local $m = $in{'mark1'} ? $in{'mode1'} : $in{'mode2'};
	foreach $d (@delete) {
		local $hid = $mail[$d]->{'header'}->{'message-id'};
		if ($m) {
			$read{$hid} = $m;
			}
		else {
			delete($read{$hid});
			}
		}
	dbmclose(%read);
	$perpage = $folder->{'perpage'} || $config{'perpage'};
	&redirect("list_mail.cgi?start=$in{'start'}&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}");
	}
elsif ($in{'move1'} || $in{'move2'}) {
	# Moving mails to some other user's inbox
	&check_modification($folder);
	@delete || &error($text{'delete_emovenone'});
	$muser = $in{'move1'} ? $in{'mfolder1'} : $in{'mfolder2'};
	&can_user($muser) || &error($text{'delete_emovecannot'});
	@mfolders = &list_user_folders($muser);
	@mfolders || &error($text{'delete_emoveuser'});

	@mail = &mailbox_list_mails($delete[0], $delete[@delete-1], $folder);
	foreach $d (@delete) {
		$mail[$d] || &error($text{'mail_eexists'});
		push(@movemail, $mail[$d]);
		}
	&lock_folder($folder);
	&lock_folder($mfolder);
	&mailbox_move_mail($folder, $mfolders[0], @movemail);
	&unlock_folder($mfolder);
	&unlock_folder($folder);
	&webmin_log("movemail", undef, undef, { 'from' => $folder->{'file'},
						'to' => $mfolders[0]->{'file'},
						'count' => scalar(@delete) } );
	&redirect("list_mail.cgi?start=$in{'start'}&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}");
	}
elsif ($in{'copy1'} || $in{'copy2'}) {
	# Copying mails to some other folder
	@delete || &error($text{'delete_ecopynone'});
	$cuser = $in{'copy1'} ? $in{'mfolder1'} : $in{'mfolder2'};
	&can_user($cuser) || &error($text{'delete_ecopycannot'});
	@cfolders = &list_user_folders($cuser);
	@cfolders || &error($text{'delete_ecopyuser'});

	@mail = &mailbox_list_mails($delete[0], $delete[@delete-1], $folder);
	foreach $d (@delete) {
		$mail[$d] || &error($text{'mail_eexists'});
		push(@copymail, $mail[$d]);
		}
	&lock_folder($cfolder);
	&mailbox_copy_mail($folder, $cfolders[0], @copymail);
	&unlock_folder($cfolder);
	&webmin_log("copymail", undef, undef, { 'from' => $folder->{'file'},
						'to' => $cfolders[0]->{'file'},
						'count' => scalar(@delete) } );
	&redirect("list_mail.cgi?start=$in{'start'}&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}");
	}
elsif ($in{'forward'}) {
	# Forwarding selected mails .. redirect
	@delete || &error($text{'delete_efnone'});
	&redirect("reply_mail.cgi?folder=$in{'folder'}&".
		  "dom=$in{'dom'}&user=$in{'user'}&".
		  join("&", map { "mailforward=$_" } @delete));
	}
elsif ($in{'new'}) {
	# Need to redirect to compose form
	&redirect("reply_mail.cgi?new=1&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}");
	}
elsif ($in{'black'} || $in{'white'}) {
	# Deny or allow all senders
	$dir = $in{'black'} ? "blacklist_from" : "whitelist_from";
	@delete || &error($text{'delete_ebnone'});
	@mail = &mailbox_list_mails($delete[0], $delete[@delete-1], $folder);
	foreach $d (@delete) {
		push(@addrs, map { $_->[0] } &split_addresses($mail[$d]->{'header'}->{'from'}));
		}
	&foreign_require("spam", "spam-lib.pl");
	local $conf = &spam::get_config();
	local @from = map { @{$_->{'words'}} }
			  &spam::find($dir, $conf);
	local %already = map { $_, 1 } @from;
	@newaddrs = grep { !$already{$_} } &unique(@addrs);
	push(@from, @newaddrs);
	&spam::save_directives($conf, $dir, \@from, 1);
	&flush_file_lines();
	&redirect("list_mail.cgi?start=$in{'start'}&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}");
	}
elsif ($in{'razor'} || $in{'ham'}) {
	# Report as ham or spam all messages, and show output to the user
	@delete || &error($in{'razor'} ? $text{'delete_ebnone'}
                                       : $text{'delete_ehnone'});

	&ui_print_header(undef, $in{'razor'} ? $text{'razor_title'}
                                             : $text{'razor_title2'}, "");
	if ($in{'razor'}) {
		print "<b>$text{'razor_report2'}</b>\n";
		}
	else {
		print "<b>$text{'razor_report3'}</b>\n";
		}
	print "<pre>";

	# Write all messages to a temp file
	@mail = &mailbox_list_mails($delete[0], $delete[@delete-1], $folder);
	$temp = &transname();
	$cmd = $in{'razor'} ? &spam_report_cmd() : &ham_report_cmd();
	foreach $d (@delete) {
		$mail[$d] || &error($text{'mail_eexists'});
		&send_mail($mail[$d], $temp);
		push(@delmail, $mail[$d]);
		}

	# Call reporting command on them
	&open_execute_command(OUT, "$cmd <".quotemeta($temp)." 2>&1", 1);
	local $error;
	while(<OUT>) {
		print &html_escape($_);
		$error++ if (/failed/i);
		}
	close(OUT);
	unlink($temp);
	print "</pre>\n";
	if ($? || $error) {
		print "<b>$text{'razor_err'}</b><p>\n";
		}
	else {
		if ($config{'spam_del'} && $in{'razor'}) {
			# Delete spam too
			&lock_folder($folder);
			&mailbox_delete_mail($folder, @delmail);
			&unlock_folder($folder);
			print "<b>$text{'razor_deleted'}</b><p>\n";
			}
		else {
			print "<b>$text{'razor_done'}</b><p>\n";
			}
		}
	&ui_print_footer("list_mail.cgi?folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}", $text{'mail_return'}, &user_list_link(), $text{'index_return'});
	}
elsif ($in{'delete'} || $in{'deleteall'}) {
	# Just deleting emails
	&check_modification($folder);
	@delete || $in{'deleteall'} || &error($text{'delete_enone'});
	if (!$in{'confirm'} && &need_delete_warn($folder)) {
		# Need to ask for confirmation before deleting
		&ui_print_header(undef, $text{'confirm_title'}, "");

		print &ui_confirmation_form("delete_mail.cgi",
			($in{'deleteall'} ? &text('confirm_warnall') :
				&text('confirm_warn', scalar(@delete)))."<br>".
			($config{'delete_warn'} ne 'y' ?
				$text{'confirm_warn2'} :
				$text{'confirm_warn4'}),
			[ &inputs_to_hiddens(\%in) ],
			[ [ 'confirm', $text{'confirm_ok'} ] ],
			);
		
		&ui_print_footer("list_mail.cgi?start=$in{'start'}&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}", $text{'mail_return'});
		}
	else {
		# Go ahead and delete
		&lock_folder($folder);
		if ($in{'deleteall'}) {
			# Clear the whole folder
			$delcount = &mailbox_folder_size($folder);
			&mailbox_empty_folder($folder);
			}
		else {
			# Just delete selected messages
			@mail = &mailbox_list_mails($delete[0],
						    $delete[@delete-1],
						    $folder);
			foreach $d (@delete) {
				$mail[$d] || &error($text{'mail_eexists'});
				push(@delmail, $mail[$d]);
				}
			&mailbox_delete_mail($folder, @delmail);
			$delcount = scalar(@delmail);
			}
		&unlock_folder($folder);
		&webmin_log("delmail", undef, undef,
			    { 'from' => $folder->{'file'},
			      'all' => $in{'deleteall'},
			      'count' => $delcount } );
		&redirect("list_mail.cgi?start=$in{'start'}&folder=$in{'folder'}&user=$in{'user'}&dom=$in{'dom'}");
		}
	}
&pop3_logout_all();

Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
xinha Folder 0755
CHANGELOG File 5.7 KB 0644
Makefile File 125 B 0644
acl_security.pl File 3 KB 0755
boxes-lib.pl File 80.37 KB 0755
cgi_args.pl File 520 B 0755
config File 758 B 0644
config.info File 4.94 KB 0644
config.info.ca File 5.79 KB 0644
config.info.cs File 5.2 KB 0644
config.info.de File 6.27 KB 0644
config.info.el File 8.14 KB 0644
config.info.fi File 0 B 0644
config.info.fr File 6.43 KB 0644
config.info.hu File 0 B 0644
config.info.it File 5.97 KB 0644
config.info.ja File 5.97 KB 0644
config.info.ko File 5.29 KB 0644
config.info.nl File 5.48 KB 0644
config.info.no File 5.25 KB 0644
config.info.pt_BR File 0 B 0644
config_info.pl File 389 B 0755
defaultacl File 50 B 0644
delete_all.cgi File 1.25 KB 0755
delete_mail.cgi File 7 KB 0755
detach.cgi File 3.19 KB 0755
detachall.cgi File 1.72 KB 0755
find.cgi File 731 B 0755
folders-lib.pl File 103.44 KB 0755
index.cgi File 2.73 KB 0755
list_mail.cgi File 5.15 KB 0755
log_parser.pl File 1.02 KB 0755
mail_search.cgi File 3.68 KB 0755
mailboxes-lib.pl File 33.59 KB 0755
makelang.pl File 1.35 KB 0755
module.info File 137 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 82 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 145 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 185 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 167 B 0644
module.info.ca File 97 B 0644
module.info.cs File 37 B 0644
module.info.cs.auto File 75 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 72 B 0644
module.info.de File 77 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 232 B 0644
module.info.es File 38 B 0644
module.info.es.auto File 72 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 110 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 141 B 0644
module.info.fi File 27 B 0644
module.info.fi.auto File 61 B 0644
module.info.fr File 40 B 0644
module.info.fr.auto File 76 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 117 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 108 B 0644
module.info.hu File 38 B 0644
module.info.hu.auto File 72 B 0644
module.info.it File 27 B 0644
module.info.it.auto File 76 B 0644
module.info.ja File 39 B 0644
module.info.ja.auto File 79 B 0644
module.info.ko File 29 B 0644
module.info.ko.auto File 65 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 110 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 85 B 0644
module.info.ms File 73 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 81 B 0644
module.info.nl File 30 B 0644
module.info.nl.auto File 57 B 0644
module.info.no File 27 B 0644
module.info.no.auto File 47 B 0644
module.info.pl File 38 B 0644
module.info.pl.auto File 67 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 94 B 0644
module.info.pt_BR File 34 B 0644
module.info.pt_BR.auto File 65 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 116 B 0644
module.info.ru File 63 B 0644
module.info.ru.auto File 99 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 120 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 97 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 78 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 154 B 0644
module.info.tr File 104 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 193 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 117 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 99 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 79 B 0644
module.info.zh_TW File 33 B 0644
module.info.zh_TW.auto File 55 B 0644
prefs.info File 225 B 0644
reply_mail.cgi File 15.96 KB 0755
safeacl File 32 B 0644
search_form.cgi File 1.86 KB 0755
send_mail.cgi File 9.56 KB 0755
slideshow.cgi File 1.63 KB 0755
useradmin_update.pl File 2.33 KB 0755
view_mail.cgi File 10.44 KB 0755