从黑客角度来阐述如何防御应用层攻击

作者:佚名    文章来源:本站原创    点击数:    更新时间:2008-5-17

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

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

一、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注入引起的。那么下面我们就来看真实的案例。

目标站点:北京某专修学院网站,如图1

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

首先先随便点开一个连接,地址为: 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

 

 

上一页  [1] [2] 

  • 上一篇文章:
  • 下一篇文章: