浅析网站安全攻防

    目前中国互联网安全事件层出不穷,每天都有众多网站被黑客入侵破坏。为了提高网站管理者的攻防能力,前不久某网站举办了一次网络安全大奖赛。本次大奖赛通过搭建真实环境,在专有服务器上模拟类似安全问题,让网友进行攻防演练,从而达到提高网站管理者的攻防能力和安全意识的目的。大赛同时向广大网友征集相关安全问题解决方案。模拟网站搭建的很有学问,既不是漏洞百出、不堪一击,也不是象众多网友所说的“很BT”、“数据库连读写权限都没有”,模拟网站设计者还是在网站的一些地方留下了一些致命的漏洞,但要找到这些漏洞也并非易事,需要我们不停的尝试,整个入侵过程就如同我们看美剧“越狱”一样,永远不知道接下来会遇到什么困难。下面我们就结合 [url]http://down.ixpub.net/safe/wmv/hackgame_001.wmv[/url]这段视频,讲解一下入侵者是如何得到模拟网站的WebShell权限,以及网站管理者该如何防范黑客入侵。
入侵者首先使用SQL注入工具“啊D”对网站进行了扫描,通过得到的注入点,获得了经过MD5加密的网站后台管理员用户名和密码,经过解密得到了明文的管理员用户名和密码,然后登录后台管理程序,上传一句话木马,得到WebShell权限(如图1所示),找到指定的文件。
                                                                    图1
不难看出,该模拟网站的结构比较典型,和众多中小网站一样,属于动态网站,是“IIS+ASP+ACCESS”组合,都是由前台显示程序,后台管理程序,以及网站数据库组成。模拟网站之所以被黑客入侵,是因为网站设计者的一些“疏忽”造成网站存在一些漏洞,而这些“疏忽”也正是在现实中网站管理者经常犯的,可见模拟网站设计者的网站攻防经验十分丰富。下面我们来看看模拟网站都存在哪些漏洞,以及该如何防范。
1、SQL注入漏洞。这种漏洞在网上很普遍,通常是由于程序员对SQL注入攻击不了解,程序过滤不严格,或者某个参数忘记检查所产生的。这就导致入侵者通过构造特殊的SQL语句,而对数据库进行跨表查询攻击,通过这种方式很容易使入侵者得到一个WebShell,然后利用这个WebShell做进一步的渗透,直至得到系统的管理权限,所以这种漏洞产生的危害很严重。建议网站管理者使用NBSI、啊D、小榕的WED+WIS等注入工具对自己的网站扫描一下,看是否存在此漏洞。如果存在该漏洞,则可以在存在漏洞的页面加入以下代码:
<%
dim sqlcheck
sqlcheck=request(“id”)
if isnumeric(sqlcheck)=0 or sqlcheck=”” then
response.write “参数错误,请重新输入!”
response.end
end if
%>
2、后台管理链接“大大方方”的放在首页上。要登录后台上传木马,找到后台管理路径是关键,这次模拟网站的后台管理链接直接放在了网站的首页上,入侵者可以轻易的找到。即使后台管理路径没有在首页上做链接,也会被SQL注入工具扫描出来,因为路径 [url]http://59.151.29.110/admin/Login.asp[/url]太容易被搜索到了。所以建议后台管理路径要放在深目录下,后台管理目录和登录页的名字也要起的复杂些,不要起admin、houtai等常见名字,这样才不容易被扫描到。另外,网站的数据库也要采取这种措施。
3、后台管理员用户名和密码过于简单。尽管后台管理员用户名和密码经过MD5加密,但还是可以被破解的,类似 [url]http://www.xmd5.org[/url]这样破解MD5密码的网站有很多,也有象Rainbowcrack、MD5Crack、DeMD5等这类的暴力破解软件,所以密码设置的复杂些也很重要。
4、上传文件格式限制不严谨。因为模拟网站后台管理使用的是ewebeditor字符编辑器,而这种编辑器有上传漏洞,只对类似于“asp”、“php”、“apsx”这类常见文件做了限制,而没有对“asa”格式的文件做限制(经过测试cer格式的文件也可以上传),入侵者还是将海阳顶端木马Eval版的一句话木马(对于一句话木马的防范,参考: [url]http://www.365master.com/kt_article_show.php?article_id=5312[/url],讲解的比较详细,这里就不详谈了)上传到了服务器上,从而获得服务器的WebShell权限,可谓是“千里之堤,溃于蚁穴”。
除了上面几个网站漏洞外,下面的漏洞也在网站中比较常见,同样需要网站管理者引起重视:
1、一种比较特殊的Sql注入漏洞。之所以说比较特殊,是因为它同样是通过构造特殊的SQL语句,来欺骗鉴别用户身份代码的,但与Sql注入的提交方式不同。比如入侵者找到后台管理入口后,在管理员用户名和密码输入“'or '1'='1'”、“'or''='”、“') or ('a'='a”、“" or "a"="a”、“' or 'a'='a”、“' or 1=1--”等这类字符串(不包含引号),提交,就有可能直接进入后台管理界面。这个漏洞比较老了,但还是在一些网站存在着。解决这个漏洞的办法是对“’”这类特殊字符进行过滤或者替换。
2、对提交的特殊字符不过滤。对于网友在网站注册用户信息和留言时,也要过滤提交的特殊字符,防止入侵者提交HTML语句。本次大赛的模拟网站就没有过滤这些特殊字符,可以导致网页被挂马、跨站等,如图2所示。
                                                                                                   图2
3、跨站漏洞。跨站漏洞的英文名称为Cross Site Script,即跨站脚本攻击,简称CSS(网页制作中的层叠样式表单也简称为CSS),也有人称之为XSS。它指的是恶意攻击者通过Web页面向数据库或HTML页面中提交恶意的HTML代码,当用户打开有恶意代码的连接或页面时,恶意代码会自动执行,从而达到攻击者的目的。产生这个漏洞的原因是网站开发者在编写程序时没有对用户提交的语句和变量中的HTML代码进行过滤或限制。跨站漏洞的危害性也比较大,并且该漏洞利用方法非常灵活,隐蔽性,利用该漏洞可以:
(1)得到受害者计算机中的Cookie信息,然后进行Cookie欺骗,成功后,获得对方在网站中的所有权限;
(2)使计算机用户打开带有木马的网页;
(3)使入侵者直接在Web系统中得到更高的操作权限;
(4)入侵者有可能对网站浏览者发起网络钓鱼式攻击。
解决这个漏洞的方法同样是过滤或转换用户提交的一些特殊字符,比如:<,>,@,%,&,’,”,\,#等,过滤&和#是为了防止恶意攻击者将字母转换成ASC码提交,另外还要限制用户提交的字符串长度。
4、Cookie欺骗。这种入侵方式通常要上面的跨站漏洞和SQL注入结合使用,入侵者在得到受害者的Cookie后,把自己计算机上的Cookie文件修改为受害者的Cookie,就可以以受害者的身份进入网站。建议登录后台管理程序时使用Session验证。
5、暴库漏洞。这个漏洞是在2004年被牛人公布的,该漏洞是因为IIS解码的一个特性产生的,与网站开发者编写的网站代码无关。入侵者只要在IE中提交类似于 [url]http://www.XXX.com%5cnews.asp?id=1[/url](%5c是“\”的十六进制代码)这样的地址,就有可能暴出数据库在服务器上的绝对地址,被入侵者下载到本地浏览。解决这个漏洞方法很简单,在数据库连接文件conn.asp中加上On Error Resume Next就可以了,具体如下:
<%
    on error resume next
 dim conn
 dim dbpath
    set conn=server.createobject("adodb.connection")
 DBPath = Server.MapPath("fdsasdffdsa/db/fdsafdsafds.mdb")
 conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>
6、数据库安全问题。如果网站使用的是Access数据库,就涉及到数据库有可能被下载的问题。解决这个问题的方法很多,比较简单的做法就是在数据库名前加“#”符号,这样就无法下载该数据库了。如果数据库是SQLServer、Oracle等数据库,建议数据库连接用户一定不要使用Sa等拥有很高权限的用户,一旦数据库的Sa密码泄露了,别说网站的安全无法保证,服务器都有可能被入侵者拿下(这篇文章有详细介绍: [url]http://www.51cto.com/art/200710/58206.htm[/url])。
对于网站的入侵方法还有不少,比较常见的还有旁注入侵法、嗅探目标网站ftp用户提权法(有太多的知名安全站点都吃过这个亏),因为涉及到服务器的安全配置问题,所以就不在本文的讨论范围内,希望以后有机会与大家交流这个话题。由于作者技术水平有限,本文如有不当之处,还望各位高手多提宝贵建议,达到互相学习、共同进步的目的,谢谢。

本文出自 “sally” 博客,谢绝转载!

你可能感兴趣的:(职场,网站,安全,休闲)