接下来,我将简单介绍这几类攻击手法的技术原理。 以及该如何防范这些攻击。
注:以下例子都为真实的案例,为保护这些网站,网址经过处理。
一、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
我看到最下面有版权所有:北京某专修学院网站 制作维护:中国万网的字样。原来是万网的程序。那么自己写的程序漏洞是不是会多一些呢?我们来测试一下吧。