OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
cubcgi
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/03/2023 07:42:40 AM
rwxrwxr-x
📄
admmenu.pl
4.98 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
common.pl
11.84 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
config.pl
1.13 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
cubhealth.cgi
2.81 KB
08/14/2022 11:11:57 AM
rwxr-xr-x
📄
download.cgi
1.02 KB
08/14/2022 11:11:57 AM
rwxr-xr-x
📄
forms.pl
4.53 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
func.pl
3.08 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
libhtml.pl
4.05 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
libtest.pl
1.45 KB
08/14/2022 11:11:57 AM
rw-r--r--
📄
test.cgi
255 bytes
08/14/2022 11:11:57 AM
rwxr-xr-x
📄
tips.cgi
2.08 KB
08/14/2022 11:11:57 AM
rwxr-xr-x
Editing: common.pl
Close
##!/usr/local/bin/perl # #require "$CUBCGI_HOME/config.pl"; #require "$CUBCGI_HOME/common.pl"; #require "$CUBCGI_HOME/libtest.pl"; #$CONFDIR = '/var/cubsys'; sub otherstats{ my $mode = shift; my $i=0; if($mode eq 'ADMIN'){ &header("Web status"); table("width=90% id=table_form"); &http_stat($mode); tableend(); html("<br>"); &header("Mysql admin status"); table("width=90% id=table_form"); &mysqladmin_stat($mode); tableend(); html("<br>"); &header("IPCS status"); table("width=90% id=table_form"); &ipcs_stat($mode); tableend(); html("<br>"); &header("Disk status"); table("width=90% id=table_form"); &du_stat($mode); tableend(); html("<br>"); &header("Logs status"); table("width=90% id=table_form"); &logfile_stat($mode); tableend(); html("<br>"); table("width=90% id=table_form"); &statfile_func($mode); tableend(); } } sub frontstats{ &header("Disk Usage"); table(" align=center id=table_graph width=95% cellspacing=0 cellpadding=1 "); trow(1); td(1); table("border=0 cellspacing=1 cellpadding=2 width=100% id=cubdata class=tbl_border"); &du_stat($mode); tableend(); td(0); trow(0); tableend(); html("</div>"); td(0); trow(0); trow(1, " height=3px class=vrow cellspacing=0"); td(1, " border=0 colspan=3 cellpadding=0");html(" "); td(0); trow(0); trow(1,"height=100% cellspacing=0 cellpadding=0"); td(1," valign=top width=50%"); html("<div>"); &header("Logs Information"); table("align=center id=table_graph width=95% cellspacing=0 cellpadding=1 "); trow(1); td(1); table("border=0 cellspacing=1 cellpadding=3 width=100% id=cubdata class=tbl_border"); &logfile_stat($mode); tableend(); td(0); trow(0); tableend(); html("</div>"); td(0); td(1,"class=vcol width=4px border=0 "); td(0); td(1,"valign=top"); &header("Message Board"); table("align=center id=table_graph width=95% cellspacing=0 cellpadding=1 "); trow(1,"id=table_form"); td(1); table("border=0 cellspacing=1 cellpadding=3 width=100% id=cubdata class=tbl_border"); td(1); &tips(); td(0); trow(0); tableend(); td(0); trow(0); tableend(); td(0); trow(0); tableend(); } ########################################################## sub header{ my $mode = shift; html("<div>"); table("border=0 align=center"); trow(1); td(1,"align=center class=cubinfo"); html($mode); td(0); trow(0); tableend(); html("</div>"); } sub tips{ $data_file="tips.cgi"; open(DAT, $data_file) || die("Could not open file!"); @raw_data=<DAT>; close(DAT); td(0); $random = int( rand(20)) + 1; trow(1); td(1); print "\n $raw_data[$random]"; } sub logfile_stat{ my $mode = shift; return if($cubconfvars{'CUBOT_HOME'} eq ''); my $logspath = "$cubconfvars{'CUBOT_HOME'}/logs"; if($mode ne 'ADMIN'){ trow(1); td(1, "Align=center class=tbl_titles"); b(1); print "Logs"; b(); td(0); td(1, "Align=center class=tbl_titles"); b(1); print "Size"; b(); td(0); trow(0); trow(1); td(1, "class=txtrow"); bold("Cubot Log File:"); td(0); td(1, "class=txtrow align=center" ); print filesize("$logspath/cubot.log"); td(0); trow(1); trow(0); td(1, "class=txtrow"); bold("ETL Log File:"); td(0); td(1, "class=txtrow align=center"); print filesize("$logspath/etllogs/etl.log"); td(0); trow(1); trow(0); td(1, "class=txtrow"); bold("Web Server Log File:"); td(0); td(1, "class=txtrow align=center"); print filesize("$logspath/access_log"); td(0); trow(1); trow(0); td(1, "class=txtrow"); bold("Web Server Error Log File:"); td(0); td(1, "class=txtrow align=center"); print filesize("$logspath/error_log"); td(0); trow(0); } else { trow(1); td(1); bold("Cubot Log File:"); td(0); td(1); print filesize("$logspath/cubot.log"); td(0); trow(1); trow(0); td(1); bold("ETL Log File:"); td(0); td(1); print filesize("$logspath/etllogs/etl.log"); td(0); trow(1); trow(0); td(1); bold("Web Server Log File:"); td(0); td(1); print filesize("$logspath/access_log"); td(0); trow(1); trow(0); td(1); bold("Web Server Error Log File:"); td(0); td(1); print filesize("$logspath/error_log"); td(0); trow(0); } } sub bold{ print "<B>@_</B>"; } sub filesize{ my $file = shift; my $res = `du -hk $file`; my @arr = split(/\s+/, $res); return @arr[0]." KB"; } ########################################################## sub http_stat{ return if($_[0] ne 'ADMIN'); my @arr; $arr[$i][0]="Web Server"; $arr[$i][1]=$ENV{'SERVER_SOFTWARE'}; $i++; $arr[$i][0]="Web Browser"; $arr[$i][1]=substr($ENV{'HTTP_USER_AGENT'}, 0, 32).")"; $i++; $arr[$i][0]="Server Port"; $arr[$i][1]=$ENV{'SERVER_PORT'}; $i++; $arr[$i][0]="Server IP Address"; $arr[$i][1]=$ENV{'REMOTE_ADDR'}; $i++; #trow(1); td(1, "colspan=2"); hr(); td(0); trow(0); foreach my $val(@arr){ trow(1); td(1); b(1); print @$val[0]; b(0); td(0); td(1, "colspan=3"); u(1); print @$val[1]; u(0); td(0); trow(0); } } ########################################################## sub statfile_func{ return if(!-e "$CONFDIR/cubhlth.inc"); open(STATFILE, "$CONFDIR/cubhlth.inc") || return ; my %arrcmd; while(<STATFILE>){ next if($_ =~ /^#/); my @line = split(/,/ , $_); $line[3] =~ s/\s+//gsi; next if($line[3] ne "1"); $arrcmd{@line[0]} = (@line[1], @line[2]); } close(STATFILE); foreach my $cmd(keys %arrcmd){ &file_cmdstat($cmd, $arrcmd{$cmd}, $mode); } } ################################# sub file_cmdstat{ my $cmd = shift; my $args = shift; my $mode = shift; return if($mode ne 'ADMIN' && @$args[2] eq '0'); # NON ADMIN my @res = `$cmd`; #trow(1); td(1, "colspan=4"); hr(); td(0); trow(0); if($? ne "0") { trow(1); td(1, "colspan=4"); html("$cmd : ERROR"); td(0); trow(0); return; } trow(1); td(1, "colspan=4"); html(@$args[1]); td(0); trow(0); foreach my $row(@res){ trow(1); td(1, "colspan=4"); print $row; td(0); trow(0); } } ################################# sub mysqladmin_stat{ my $mode = shift; my @arr = `mysqladmin -u root version`; if($mode eq 'ADMIN'){ #trow(1); td(1, "colspan=4"); hr(); td(0); trow(0); for(my $i = 5; $i<10; $i++){ trow(1); td(1); print "<b>Mysql Admin</b>" if ($i == 5) ; td(0); td(1, "colspan=3"); print "<tt>", $arr[$i], "</tt>"; td(0); trow(0); } } } ################################# sub ipcs_stat{ my $mode = shift; my @arr = `ipcs -lq`; my $maxq; my $col = ""; my $f = 1; # trow(1); td(1, "colspan=4"); hr(); td(0); trow(0); td(0); trow(0); foreach my $row(@arr){ if($row =~ /^\-/ || $row =~ /^\s+/) { next; } my @mq = split(/=/, $row); if($mode eq 'ADMIN'){ trow(1); @mq[0] =~ s/\(bytes\)//gsi; td(1); b(1); html(@mq[0]); b(0); td(0); td(1, "colspan=3"); html(@mq[1]); print $&; td(0); trow(0); #last; } $maxq = @mq[1]; $maxq =~ s/\s+//gsi; } #trow(1); td(1, "colspan=4"); hr(); td(0); trow(0); @arr = (); my @arr = `ipcs -q`; $f = 1; foreach my $row(@arr){ if($row =~ /^\-/ || $row =~ /^\s+/) { next; } my @mq = split(/\s+/, $row); if(@mq[4] >= $maxq){ $col="RED"; } else{#Remove This Else Part To Display All next; } if($f eq "1"){ trow(1); td(1, "colspan=4"); b(1); html("IPCS Queue"); b(0); td(0); trow(0); } trow(1); for($i=1; $i<=5; $i++){ @mq[$i] =~ s/\s+//gsi; @mq[$i] = "<font color=$col><b>".@mq[$i]."</b></font>" if($col eq "RED"); if($f eq "1"){ td(1); b(1); html(@mq[$i]); b(0); td(0); } else{ td(1); html(@mq[$i]); td(0); } } trow(0); $col = ""; $f = 0; } #trow(1); td(1, "colspan=4"); hr(); td(0); trow(0); } ################################# sub du_stat{ my $mode = shift; my $flag = 1; my @arr = `df -lh | egrep -v "none|boot"`; # trow(1); td(1, "colspan=3"); b(1); html("Disk Space"); b(0); td(0); trow(0); foreach my $row (@arr){ my @du = split(/\s+/, $row); trow(1); if($mode eq 'ADMIN'){ for($i=1; $i<=5; $i++){ if($flag){ td(1); b(1); print @du[$i]; b(); td(); } else{ td(1); print @du[$i]; td(); } } } else{ for($i=5; $i>=3; $i--){ if($flag){ td(1, "Align=center class=tbl_titles"); b(1); print @du[$i]; b(); td(0); } else{ td(1, "Align=center class=txtrow "); print @du[$i]; td(0); } } } $flag = 0; trow(0); } } ################################# sub exechpass{ my ($old, $new1, $new2) = @_; # print "Password Changed"; my %conf; config(\%conf); if($old eq '' || $new1 eq '' || $new2 eq ''){ return 'Improper value in Password field(s)'; } if($new1 ne $new2) { return 'New Password & Retype Password are not same'; } if($conf{'ADMPASS'} ne $old){ return "Wrong Password "; } system("cp $CONFDIR/config.inc $CONFDIR/config.inc_old"); open(OLDCONF, "$CONFDIR/config.inc_old"); open(CONF, ">$CONFDIR/config.inc"); while(<OLDCONF>){ if($_ =~ /^ADMPASS=/){ print CONF "ADMPASS=", $new1, "\n"; } else{ chomp($_); print CONF $_, "\n"; } } close(CONF); close(OLDCONF); return 'OK'; } ################################# sub statusrow{ my ($title, $cmd, $mode) = @_; trow(1); if($mode ne 'ADMIN'){ td(1,"class=txtrow"); b(1); print "$title"; b(0); td(0); #td(1); print getversion($cmd); td(0); td(1, "nowrap class=txtrow align=center"); print getstatus($cmd); td(0); trow(0); return ; } ## ADMIN ## td(1); b(1); print "$title"; b(0); td(0); td(1); print &getversion($cmd); td(0); td(1, "nowrap"); print &getstatus($cmd); td(0); td(1, "nowrap"); html("OK"); td(0); trow(0); } ################################# sub statustbl{ my $mode = shift; my %arrcmd; if($mode eq 'ADMIN'){ table(" align=center width=100% cellspacing=0 cellpadding=1 "); trow(1); td(1); table("border=0 cellspacing=1 cellpadding=1 width=100% id=table_form "); } else{ table("align=center id=table_graph width=95% cellspacing=0 cellpadding=1 "); trow(1); td(1); table("border=0 cellspacing=1 cellpadding=3 width=100% id=cubdata class=tbl_border"); } if(!-e "$CONFDIR/cubhlth.inc"){ &statusrow("rdcubot", "Cubot Tool", $mode); &statusrow("mysqld", "DB Mysql", $mode); } else{ open(STATUS, "$CONFDIR/cubhlth.inc"); while(<STATUS>){ chomp($_); next if($_ =~ /^#/ || $_ =~ /^\s+$/); my @arr = split(/,/ ,$_); next if(@arr[3] ne '4'); $arrcmd{@arr[0]} = [ @arr ]; } close(STATUS); if($mode ne 'ADMIN'){ trow(1); td(1, "Align=center class=tbl_titles"); b(1); print "Services"; b(); td(0); td(1, "Align=center class=tbl_titles"); b(1); print "Status"; b(); td(0); trow(0); } foreach my $cmd(%arrcmd){ my $cmd = @{$arrcmd{$cmd}}[0]; my $title = @{$arrcmd{$cmd}}[1]; my $user = @{$arrcmd{$cmd}}[2]; next if($cmd eq '') ; if($mode eq 'ADMIN'){ &statusrow($title, $cmd, $mode); } elsif($user eq '1'){ #Only Admin Can See &statusrow($title, $cmd, $mode); } } } tableend(); td(0); trow(0); tableend(); } sub cublibtest_stat{ my @libnames; return if(!-e "$CONFDIR/cubhlth.inc") ; open(LIBTEST, "$CONFDIR/cubhlth.inc") or return; while(<LIBTEST>){ next if($_ =~ /^#/ || $_ =~ /^\s+$/); my @arr = split(/,/ ,$_); @arr[3] =~ s/\s//gsi; next if(@arr[3] ne '3'); push(@libnames, @arr[0]); } close(LIBTEST); table("width=90% id=table_form"); #trow(1); td(1, "colspan=4"); hr(); td(0); trow(0); my %conf; getvars(\%conf); $ENV{PATH} = $ENV{PATH}.":".$conf{ADDPATH}; foreach my $lib(@libnames){ trow(1); my @errlib; my $res = &chklib($lib, \@errlib); # print @errlib[0], $res; if($res ne '1'){ if($res ne 'ERR'){ td(1, "colspan=2"); print wrfail($res); td(0); } else{ td(1, " colspan=2"); b(1); html($lib); b(0); td(0); td(1, "colspan=2"); table(1); trow(1); foreach my $er(@errlib){ td(1); print wrfail($er); td(0); } trow(1); tableend(); td(0); } next; } td(1,"width=74%"); b(1); html($lib); b(); td(0); td(1,"align=right"); print wrok('OK'); td(0); td(1);td(0); trow(0); } tableend(); } 1;