[ Avaa Bypassed ]




Upload:

Command:

www-data@18.119.128.99: ~ $
#!/usr/bin/perl
# Display a list of other webmin servers

use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './servers-lib.pl';
our (%text, %config, %access, %in);
&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
&ReadParse();

# Get servers and apply search
my @servers = &list_servers_sorted(1);
if ($in{'search'}) {
	@servers = grep { $_->{'host'} =~ /\Q$in{'search'}\E/i ||
			  $_->{'desc'} =~ /\Q$in{'search'}\E/i } @servers;
	}

# Show search form
my $form = 0;
if (@servers > $config{'max_servers'} || $in{'search'}) {
	print &ui_form_start("index.cgi");
	print "<b>$text{'index_search'}</b> ",
	      &ui_textbox("search", $in{'search'}, 40)," ",
	      &ui_submit($text{'index_ok'}),"<p>\n";
	print &ui_form_end();
	$form++;
	}

# Work out links
my @linksrow;
if ($access{'edit'}) {
	if (@servers) {
		print &ui_form_start("delete_servs.cgi");
		push(@linksrow, &select_all_link("d", $form),
				&select_invert_link("d", $form));
		}
	if ($access{'add'}) {
		push(@linksrow, &ui_link("edit_serv.cgi?new=1", $text{'index_add'}) );
		}
	}

if (@servers && $config{'display_mode'}) {
	# Show table of servers
	print &ui_links_row(\@linksrow);
	print &ui_columns_start([
		$access{'edit'} ? ( "" ) : ( ),
		$text{'index_host'},
		$text{'index_desc'},
		$text{'index_group'},
		$text{'index_os'} ], 100);
	foreach my $s (@servers) {
		my @cols;
		my $table = "<table cellpadding=0 cellspacing=0 width=100%><tr>\n";
		if (!$access{'links'} || !$s->{'port'}) {
			$table .= "<td>\n";
			$table .= &html_escape($s->{'realhost'} ||$s->{'host'});
			$table .= ":$s->{'port'}" if ($s->{'port'});
			$table .= "</td>\n";
			}
		else {
			my $link = "";
			if ($s->{'user'} || $s->{'autouser'}) {
				$link = "link.cgi/".$s->{'id'}."/";
				}
			else {
				$link = &make_url($s);
				}
		    	$table .= "<td>\n";
			$table .= &ui_link($link,
				&html_escape($s->{'realhost'} || $s->{'host'} ).
				":".$s->{'port'}, undef, "target=_top");
			$table .= "</td>\n";
			}
		$table .= "<td align=right>";
		if ($s->{'autouser'} && &logged_in($s)) {
			$table .= &ui_link("logout.cgi?id=".$s->{'id'},
					   "(".$text{'index_logout'}.")");
			}
		if ($access{'edit'}) {
			$table .= &ui_link("edit_serv.cgi?id=".$s->{'id'},
					   "(".$text{'index_edit'}.")");
			}
		$table .= "</td></tr></table>\n";
		push(@cols, $table);
		push(@cols, &html_escape($s->{'desc'}));
		push(@cols, &html_escape($s->{'group'}) || $text{'index_none'});
		my ($type) = grep { $_->[0] eq $s->{'type'} }
				  &get_server_types();
		push(@cols, $type->[1]);
		if ($access{'edit'}) {
			print &ui_checked_columns_row(\@cols, undef,
						      "d", $s->{'id'});
			}
		else {
			print &ui_columns_row(\@cols);
			}
		}
	print &ui_columns_end();
	}
elsif (@servers) {
	# Show server icons
	print &ui_links_row(\@linksrow);
	my (@afters, @befores);
	if ($access{'edit'}) {
		my $sep = length($text{'index_edit'}) > 10 ? "<br>" : " ";
		my $logout = sub {
			my ($l) = @_;
			my $logout_link = "";
			if (&logged_in($l)) {
			 	$logout_link =
			 		&ui_link("logout.cgi?id=$l->{'id'}", "(".$text{'index_logout'}.") ");
			 	}
			 return $logout_link;
		};
		@afters = map { $sep.&$logout($_).&ui_link("edit_serv.cgi?id=".$_->{'id'}, "(".$text{'index_edit'}.")" ) } @servers;
		@befores = map { &ui_checkbox("d", $_->{'id'}) } @servers;
		}
	my @titles = map { &make_iconname($_) } @servers;
	my @icons = map { -r "images/$_->{'type'}.svg" ? 
	                    "images/$_->{'type'}.svg" :
	                    "images/$_->{'type'}.gif" } @servers;
	my @links = map { !$access{'links'} ? undef :
		       $_->{'user'} || $_->{'autouser'} ?
			"link.cgi/$_->{'id'}/" : &make_url($_) } @servers;
	&icons_table(\@links, \@titles, \@icons, undef, "target=_top",
		     undef, undef, \@befores, \@afters);
	}
elsif ($in{'search'}) {
	# No servers match
	print "<b>$text{'index_nosearch'}</b> <p>\n";
	}
else {
	# No servers exist
	print "<b>$text{'index_noservers'}</b> <p>\n";
	}
if ($access{'edit'}) {
	print &ui_links_row(\@linksrow);
	if (@servers) {
		print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]);
		}
	}

my $myip = &get_my_address();
my $myscan = &address_to_broadcast($myip, 1) if ($myip);
if ($access{'find'} || $access{'auto'}) {
	print &ui_hr();
	print &ui_buttons_start();
	if ($access{'find'}) {
		# Buttons to scan and broadcast for servers
		my %miniserv;
		&get_miniserv_config(\%miniserv);
		my $port = $config{'listen'} || $miniserv{'listen'} || 10000;
		print &ui_buttons_row("find.cgi", $text{'index_broad'},
						  $text{'index_findmsg'});
		my $t = &ui_buttons_row("find.cgi", $text{'index_scan'},
		      &text('index_scanmsg', &ui_textbox("scan", $myscan, 15)).
		      "<br><table>\n".
		      "<tr><td valign=middle><b>$text{'index_defuser'}</b></td>\n".
		      "<td valign=middle>".&ui_textbox("defuser", undef, 20)."</td> </tr>".
		      "<tr> <td><b>$text{'index_defpass'}</b></td>\n".
		      "<td valign=middle>".&ui_password("defpass", undef, 20)."</td> </tr>".
		      "<tr> <td><b>$text{'index_defport'}</b></td>\n".
		      "<td valign=middle>".&ui_textbox("port", $port, 20)."</td> </tr>".
		      "</table>\n"
		      );
		$t =~ s/valign=top class=ui_buttons_value/valign=middle class=ui_buttons_value/g;
		print $t;
		}
	if ($access{'auto'}) {
		# Button for auto-discovery form
		print &ui_buttons_row("edit_auto.cgi", $text{'index_auto'},
						  $text{'index_automsg'});
		}
	print &ui_buttons_end();
	}

&ui_print_footer("/", $text{'index'});

sub make_url
{
return sprintf "http%s://%s:%d/",
	$_[0]->{'ssl'} ? 's' : '', $_[0]->{'host'}, $_[0]->{'port'};
}

sub make_iconname
{
my $rv;
if ($_[0]->{'desc'} && !$config{'show_ip'}) {
	$rv = $_[0]->{'desc'};
	}
elsif ($_[0]->{'realhost'}) {
	$rv = "$_[0]->{'realhost'}:$_[0]->{'port'}";
	}
else {
	$rv = "$_[0]->{'host'}:$_[0]->{'port'}";
	}
return &html_escape($rv);
}


Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
CHANGELOG File 1.63 KB 0644
acl_security.pl File 2.46 KB 0755
auto.pl File 2.9 KB 0755
backup_config.pl File 678 B 0755
cgi_args.pl File 313 B 0755
config File 140 B 0644
config-debian-linux File 174 B 0644
config-redhat-linux File 180 B 0644
config-syno-linux File 140 B 0644
config.info File 977 B 0644
config.info.ar File 1.5 KB 0644
config.info.ca File 1.17 KB 0644
config.info.cs File 421 B 0644
config.info.de File 1.14 KB 0644
config.info.es File 481 B 0644
config.info.fr File 489 B 0644
config.info.hu File 147 B 0644
config.info.it File 1.03 KB 0644
config.info.ja File 1.21 KB 0644
config.info.ko File 983 B 0644
config.info.ms File 934 B 0644
config.info.nl File 979 B 0644
config.info.no File 925 B 0644
config.info.pl File 1.02 KB 0644
config.info.pt_BR File 460 B 0644
config.info.ru File 1.48 KB 0644
config.info.sk File 445 B 0644
config.info.sv File 99 B 0644
config.info.tr File 487 B 0644
config.info.zh File 81 B 0644
config.info.zh_TW File 60 B 0644
config_info.pl File 264 B 0755
defaultacl File 88 B 0644
delete_servs.cgi File 836 B 0755
edit_auto.cgi File 2.32 KB 0755
edit_serv.cgi File 4.8 KB 0755
find.cgi File 1.46 KB 0755
index-json.cgi File 266 B 0755
index.cgi File 5.76 KB 0755
link.cgi File 7 KB 0755
log_parser.pl File 843 B 0755
login.cgi File 441 B 0755
logout.cgi File 340 B 0755
module.info File 178 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 124 B 0644
module.info.ar File 133 B 0644
module.info.ar.auto File 23 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 189 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 190 B 0644
module.info.ca File 120 B 0644
module.info.ca.auto File 18 B 0644
module.info.cs File 31 B 0644
module.info.cs.auto File 92 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 119 B 0644
module.info.de File 117 B 0644
module.info.de.auto File 15 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 194 B 0644
module.info.es File 37 B 0644
module.info.es.auto File 109 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 141 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 193 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 145 B 0644
module.info.fr File 34 B 0644
module.info.fr.auto File 102 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 141 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 141 B 0644
module.info.hu File 25 B 0644
module.info.hu.auto File 109 B 0644
module.info.it File 33 B 0644
module.info.it.auto File 99 B 0644
module.info.ja File 141 B 0644
module.info.ko File 32 B 0644
module.info.ko.auto File 109 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 151 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 131 B 0644
module.info.ms File 110 B 0644
module.info.ms.auto File 16 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 127 B 0644
module.info.nl File 29 B 0644
module.info.nl.auto File 97 B 0644
module.info.no File 23 B 0644
module.info.no.auto File 89 B 0644
module.info.pl File 24 B 0644
module.info.pl.auto File 95 B 0644
module.info.pt File 36 B 0644
module.info.pt.auto File 107 B 0644
module.info.pt_BR File 40 B 0644
module.info.pt_BR.auto File 113 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 125 B 0644
module.info.ru File 30 B 0644
module.info.ru.auto File 152 B 0644
module.info.sk File 31 B 0644
module.info.sk.auto File 91 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 133 B 0644
module.info.sv File 27 B 0644
module.info.sv.auto File 93 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 285 B 0644
module.info.tr File 36 B 0644
module.info.tr.auto File 111 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 192 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 188 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 163 B 0644
module.info.zh File 30 B 0644
module.info.zh.auto File 85 B 0644
module.info.zh_TW File 34 B 0644
module.info.zh_TW.auto File 91 B 0644
prefs.info File 63 B 0644
save_auto.cgi File 2.34 KB 0755
save_serv.cgi File 3.31 KB 0755
servers-lib.pl File 15.04 KB 0755
uninstall.pl File 262 B 0755