PK Default page
One Hat Cyber Team
  • Dir : ~/usr/local/src/csf/ConfigServer/
  • Edit File: cseUI.pm
    \n"; print "\n"; print ""; print " \n"; print "\n"; print ""; print "\n"; print "
    \n"; return; } # end edit ############################################################################### # start save sub save { unless ($FORM{lf}) {$FORM{newf} =~ s/\r//g} my $status = 0; open (my $OUT, ">","$webpath$FORM{p}/$FORM{f}") or $status = $!; flock ($OUT, LOCK_EX); print $OUT $FORM{newf}; close ($OUT); if ($status) {$message = "Operation Failed - $status"} else {$message = ""} &browse; return; } # end save ############################################################################### # start uploadfile sub uploadfile { my $crlf = "\r\n"; my @data = split (/$crlf/,$fileinc); my $boundary = $data[0]; $boundary =~ s/\"//g; $boundary =~ s/$crlf//g; my $start = 0; my $part_cnt=-1; undef @parts; my $fileno = 0; foreach my $line (@data) { if ($line =~ /^$boundary--/) { last; } if ($line =~ /^$boundary/) { $part_cnt++; $start = 1; next; } if ($start) { $parts[$part_cnt] .= $line.$crlf; } } foreach my $part (@parts) { my @partdata = split(/$crlf/,$part); undef %header; my $body = ""; my $dobody = 0; my $lastfieldname = ""; foreach my $line (@partdata) { if (($line eq "") and !($dobody)) { $dobody = 1; next; } if ($dobody) { $body .= $line.$crlf; } else { if ($line =~ /^\s/) { $header{$lastfieldname} .= $line; } else { ($fieldname, $value) = split (/\:\s/,$line,2); $fieldname = lc $fieldname; $fieldname =~ s/-/_/g; $header{$fieldname} = $value; $lastfieldname = $fieldname; } } } my @elements = split(/\;/,$header{content_disposition}); foreach my $element (@elements) { $element =~ s/\s//g; $element =~ s/\"//g; ($name,$value) = split(/\=/,$element); $FORM{$value} = $body; $ele{$name} = $value; $ele{$ele{name}} = $value; if ($value =~ /^file(.*)$/) {$files = $1} } my $filename = $ele{"file$files"}; if ($filename ne "") { $fileno++; $filename =~ s/\"//g; $filename =~ s/\r//g; $filename =~ s/\n//g; @bits = split(/\\/,$filename); $filetemp=$bits[-1]; @bits = split(/\//,$filetemp); $filetemp=$bits[-1]; @bits = split(/\:/,$filetemp); $filetemp=$bits[-1]; @bits = split(/\"/,$filetemp); $filename=$bits[0]; push (@filenames, $filename); push (@filebodies, $body); } } $FORM{p} =~ s/\r//g; $FORM{p} =~ s/\n//g; $FORM{type} =~ s/\r//g; $FORM{type} =~ s/\n//g; $FORM{c} =~ s/\r//g; $FORM{c} =~ s/\n//g; $FORM{m} =~ s/\r//g; $FORM{m} =~ s/\n//g; $FORM{caller} =~ s/\r//g; $FORM{caller} =~ s/\n//g; for (my $x = 0;$x < @filenames ;$x++) { $filenames[$x] =~ s/\r//g; $filenames[$x] =~ s/\n//g; $filenames[$x] =~ s/^file-//g; $filenames[$x] = (split (/\\/,$filenames[$x]))[-1]; $filenames[$x] = (split (/\//,$filenames[$x]))[-1]; if ($FORM{type} eq "ascii") {$filebodies[$x] =~ s/\r//g} if (-e "$webpath$FORM{p}/$filenames[$x]") { $extramessage .= "
    $filenames[$x] - Already exists, delete the original first"; $fileno--; next; } sysopen (my $OUT,"$webpath$FORM{p}/$filenames[$x]", O_WRONLY | O_CREAT); flock ($OUT, LOCK_EX); print $OUT $filebodies[$x]; close ($OUT); $extramessage .= "
    $filenames[$x] - Uploaded"; } $message = "$fileno File(s) Uploaded".$extramessage; &browse; return; } # end uploadfile ############################################################################### # start countfiles sub countfiles { if (-d $File::Find::name) {push (@dirs, $File::Find::name)} else {push (@files, $File::Find::name)} return; } # end countfiles ############################################################################### # loadconfig sub loadconfig { sysopen (my $IN, "/etc/csf/csf.conf", O_RDWR | O_CREAT) or die "Unable to open file: $!"; flock ($IN, LOCK_SH); my @config = <$IN>; close ($IN); chomp @config; foreach my $line (@config) { if ($line =~ /^\#/) {next} if ($line !~ /=/) {next} my ($name,$value) = split (/=/,$line,2); $name =~ s/\s//g; if ($value =~ /\"(.*)\"/) { $value = $1; } else { &error(__LINE__,"Invalid configuration line"); } $config{$name} = $value; } return; } # end loadconfig ############################################################################### 1;