English
 电子信箱
 加入收藏

  威盾防火墙 >> 支持与下载 >> 技术文章 >> 黑客解密攻击方法 阐述如何防御攻击(一)

 

黑客解密攻击方法 阐述如何防御攻击(一)

威盾防火墙 2008-03-06

 

    随着网络与信息技术的飞速发展,尤其是在互连网飞速发展的今天,网络已经逐渐改变了人们的生活方式 ,成了生活中不可缺少的一部分。越来越多的企业已经开始建设自己的业务信息系统, 所以网络安全的重要性就此体现出来了。笔者在在中国被黑站点统计系统调查发现2007年 全国共有24516个一级域名网站被篡改,这仅仅还是以知的不包括所有的二级或二级域名以下的网站数据,其中包括:
    .gov.cn 域名 的政府网站仅2007年就有 708 个网站被篡改
    .cn 域名被黑站点统计 为 6186个
    .com.cn 域名被黑站点统计 共计 1403 个
    .com 域名  被黑站点统计共计 13664 个
    .net.cn 域名 被黑站点共计 203个
    .net 域名 被黑站点统计共计 1586 个
    .org 域名 被黑站点统计 共计393 个
    .org.cn 域名 被黑站点统计 102 个
    教育网站被黑统计 .edu.cn 域名共271个被黑客所篡改,总计为 24516 个网站 。这些仅仅为我们所知道的。而更多的攻击是在隐蔽的 根本无法发觉的情况下进行。有的大型企业内部网络被黑客控制长达几个月 管理员竟然都不知道?
    那么黑客到底是如何攻击?他们心理又是如何去思考? 如何去确定一个攻击目标呢?从整体上看,网络攻击呈现下面两个特点:

    一、黑客组织越来越正规化

    组织内部有明确分工,从恶意代码的制作,到代码的散播,都有明确的分工合作。而不同的组织之间既有竞争也有合作,黑客攻击按照计划的有组织地进行,使得黑客攻击的效率有明显提高。

    二、攻击目标直接化

    网络黑客们针对攻击目标的特点,经过一系列的类似“睬点”后,黑客们针对目标存在的问题编写攻击代码 设定只针对此目标的攻击模式,绕过网络防御体系入侵有价值的目标主机,或者通过僵尸网络对目标发起直接的大规模网络攻击,造成目标网络不能访问或者访问延迟等等现象。

    一般来说。真正的黑客不会去攻击没有价值的目标,往往是存在商业价值或者私人恩怨以后,“黑客”会确定目标进行跟踪式攻击,当然也不排除有无聊的非真正黑客进行无聊的攻击活动,当然这也从另一方面反映出我国的网络安全的薄弱现象。稍微懂一点计算机的“黑客”使用一些黑客工具就可以轻易的篡改一些网站。

    那么下面我就针对网络黑客如何进行攻击与一些常用的攻击手法进行介绍,只有知道了如何攻击才能有效的进行防御。

    2007年根据新近公布的一份现实威胁分析报告表明,Web 应用正成为最大的网络安全盲点。而企业必须认识到自己的各种应用的风险,并采取必要的手段来避免危险的安全攻击。有许多调查研究论及了病毒、网络攻击、公共缺陷公布、垃圾邮件和网络钓鱼企图,但很少关注位于防火墙和传统网络安全范畴之外的基于 Web 的应用。

    简单来说,目前黑客攻击所用到的技术都是已知技术的更高级应用,大概分为以下的几种方法:
    SQL注入
    跨站攻击 
    拒绝服务攻击 
    社会工程学
 


 接下来,我将简单介绍这几类攻击手法的技术原理。 以及该如何防范这些攻击。

    注:以下例子都为真实的案例,为保护这些网站,网址经过处理。

    一、SQL注入攻击

    什么是 SQL注入呢?

    简单的说也就是攻击者通过黑盒测试的方法查询到目标网站脚本存在过滤不严,那么攻击者就可以利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,提交一段数据库查询代码,通过在IE浏览器访问直接查询管理员的用户口令等等。或者利用数据库的一些特性进行权限提升等等,这就是我们常说的sql injection也就是SQL注入。我们来看一下的代码:

    <%
    dim ID
    dim rs,sql
    ID=request("id") //从客户端获取ID的值
    sql = "select * from Info where ID="& ID  // 把查询语句赋值给SQL变量
    Set rs = Server.CreateObject("ADODB.Recordset") //创建记录对象
    rs.open sql,conn,1,1    //执行查询语句
    if not (rs.eof and rs.bof) then  //判断记录是否存在
    %>

    如果程序员在网站的某一程序,比如vite.asp里有如上语句。那么我们可以清楚的看到ID没有经过任何过滤便放入到SQL查询语句当中,注入漏洞产生。那么我们可以构造地址为http://127.0.0.1/vite.asp?id=1 的地址来进行SQL注射攻击。SQL注射为目前WEB应用的最重要的威胁。据了解,90%的企业网站被攻险都是因为SQL注入引起的。那么下面我们就来看真实的案例。

    我看到最下面有版权所有:北京某专修学院网站 制作维护:中国万网的字样。原来是万网的程序。那么自己写的程序漏洞是不是会多一些呢?我们来测试一下吧。

    首先先随便点开一个连接,地址为: hxxp://www.bjjxxx.com.cn/detail.asp?productid=389,我们在productid=389后面加一个单引号,看看返回什么呢?如图2

    错误信息为: Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '' 附近有语法错误。 /detail.asp,行 22

    从上面的返回信息我们得到了以下几个提示:
    1.网站使用的是sql server数据库
    2.是通过odbc来连接数据库
    3.程序应该是有过滤不严密的地方,因为我们输入的单引号已经被程序解吸执行了。
    那么既然这样我们就可以使用 and 1=1 1=2来判断是不是存在注射漏洞。

    通过判断发现该地址存在注射漏洞,马上使用工具检验一下,通过使用阿D注射工具发现,数据库当前库为cw88163_db,当前用户为cw88163,权限为DB_OWNER。如图3

                            

    既然知道了权限为DB_OWNER 那么我们就可以通过列目录来寻找网站的WEB目录 从而通过使用差异备份来获取网站的WEBSHELL。通过列取一系列目录得知 网站的WEB目录为D:\wwwroot\如图4
                           

    既然知道了WEB目录我们就使用NBSI的getwebshell功能备份一个一句话木马进去吧。在注入地址那里添写hxxp://www.bjjxxx.com.cn/detail.asp?productid=389,备份目录那里写D:\wwwroot\1.asp 然后点备份就好啦 可以看到我们成功的备份出了一个一句话木马。 如图5
                             

    至此我们已经成功的拿到了网站的WEBSHELL也就是最高权限了。一个很简单的漏洞就使得一个名牌学校的网站就这样”沦陷”了。

    SQL注入防御方法:单独编写一个文件,部分内容为:
    dim sql_injdata SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"         SQL_inj = split(SQL_Injdata,"|")
    也就是过滤掉了常用的SQL语句关键字,从而可以有效的防御SQL注射攻击。


相关内容: 最新内容:
公告:威盾科技已正式办公上班[2008-02-13]
威盾春节放假通知及值班安排[2008-02-02]
威盾免费版V3.3正式发布[2008-01-21]
配置一个安全稳定的SQLSERVER的数据库[2008-01-03]
SQL Server 2000 的安全配置[2007-12-30]
关于元旦放假通知及值班安排[2007-12-28]