Changeset 151


Ignore:
Timestamp:
08/12/2009 11:19:21 PM (4 years ago)
Author:
deity
Message:

Added facillity to return headers on nfetch

Location:
trunk/plugins
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/nikto_core.plugin

    r150 r151  
    19531953      foreach my $c (@{$result{'whisker'}->{'cookies'}})  
    19541954      {  
    1955          nprint("+ $request{'whisker'}->{'uri'} sent cookie: $c"); 
     1955         nprint("+ $uri sent cookie: $c"); 
     1956      } 
     1957   } 
     1958 
     1959   # If headers is defined, copy the whisker headers to the hash 
     1960   if (defined $headers) 
     1961   { 
     1962      # First clear the hash 
     1963      foreach my $header (keys %$headers) 
     1964      { 
     1965         delete($headers->{$header}); 
     1966      } 
     1967      while (my ($key, $value) = each(%result)) 
     1968      { 
     1969         if ($key ne "whisker" && $key ne "connection") 
     1970         { 
     1971            $headers->{$key}=$value; 
     1972         } 
    19561973      } 
    19571974   } 
  • trunk/plugins/nikto_headers.plugin

    r139 r151  
    4343   my $dbarray = initialise_db("db_headers"); 
    4444   my @interesting_headers = qw /microsoftofficewebserver ms-author-via dasl dav daap-server/; 
     45   my %headers; 
    4546   # Standard headers, whisker is added to stop false positives 
    4647   # Host Pragma 
     
    5152   foreach my $f (qw/\/index.php \/junk999.php \/ \/index.php3 \/ \/junk999.php3 \/index.cfm \/junk999.cfm \/index.asp \/junk999.asp \/index.aspx \/junk988.aspx/ ) 
    5253   { 
    53       (my $RES, $CONTENT) = fetch($f, "GET"); 
    54       if (defined $result{'x-powered-by'}) { $xpb{ $result{'x-powered-by'} } = 1; } 
     54      (my $RES, $CONTENT) = nfetch($f, "GET", "", \%headers); 
     55      if (defined $headers{x-powered-by}) { $xpb{ $headers{x-powered-by} } = 1; } 
    5556   } 
    5657 
     
    6869   ####################################################################### 
    6970   # Servlet-Engine info 
    70    if (defined $result{'servlet-engine'}) 
    71    { 
    72       my $x = $result{'servlet-engine'}; 
     71   if (defined $headers{servlet-engine}) 
     72   { 
     73      my $x = $headers{servlet-engine}; 
    7374      $x = ~s/\(.*$//; 
    7475      $x =~ s/\s+//g; 
     
    146147    
    147148   # First let's hit something we know should return something 
    148    my ($res, $content)=fetch("/","GET"); 
     149   my ($res, $content)=nfetch("/","GET","",\%headers); 
    149150 
    150151   foreach my $header (@interesting_headers) 
    151152   { 
    152       if ($result{$header} ne '') 
    153       { 
    154          my $x = $result{$header}; 
     153      if ($headers{$header} ne '') 
     154      { 
     155         my $x = $headers{$header}; 
    155156         $x =~ s/\s+.*$//; 
    156157         push(@BUILDITEMS, $x); 
    157          add_vulnerability($mark,"Retrieved $header header: $result{$header}",999986,0); 
     158         add_vulnerability($mark,"Retrieved $header header: $headers{$header}",999986,0); 
    158159      } 
    159160   } 
     
    161162   ####################################################################### 
    162163   # Look for any non-standard headers 
    163    foreach my $header (sort keys %result) 
     164   foreach my $header (sort keys %headers) 
    164165   { 
    165166      my $found = 0; 
     
    174175      if ($found == 0) 
    175176      { 
    176          my $x = $result{$header}; 
     177         my $x = $headers{$header}; 
    177178         $x =~s/\s+.*$//; 
    178179         push(@BUILDITEMS, $x); 
    179          add_vulnerability($mark,"Non-standard header $header returned by server, with contents: $result{$header}",$reportnum,0); 
     180         add_vulnerability($mark,"Non-standard header $header returned by server, with contents: $headers{$header}",$reportnum,0); 
    180181         $reportnum++; 
    181182      } 
     
    188189   foreach my $f (qw/\/index.html \/index.htm \/robots.txt/) 
    189190   { 
    190       (my $RES, $CONTENT) = fetch($f, "GET"); 
    191    } 
    192  
     191      (my $RES, $CONTENT) = nfetch($f, "GET","", \%headers); 
     192   } 
     193    
    193194   # Now we have a header, let's check ETag for inode 
    194    if (defined $result{etag}) 
    195    { 
    196       my $etag=$result{etag}; 
     195   if (defined $headers{etag}) 
     196   { 
     197      my $etag=$headers{etag}; 
    197198      $etag =~ s/"//g; 
    198199      my @fields = split("-",$etag); 
Note: See TracChangeset for help on using the changeset viewer.