sql注入漏洞有哪些
SQL注入漏洞有哪些
SQL注入攻击是当今最危险、最普遍的基于Web的攻击之一。所谓注入攻击,是攻击者把SQL命令插入到Web表单的输入域页面请求的查询字符串中,如果要对一个网站进行SQL注入攻击,首先需要找到存在SQL注入漏洞的地方,也是寻找所谓的注入点。SQL注入点一般存在于登录页面、查找页面或添加页面等用户可以查找或修改数据的地方。
SQL注入漏洞有哪些
最常用的寻找SQL注入点的方法,是在网站中寻找如下形式的页面链接:http://www.xxx.com/xxx.asp?id=YY,其中“YY”可能是数字,也有可能是字符串,分别被称为整数类型数据或者字符型数据。在本章中我们主要针对整数型数据进行SQL注入讲解。
通常可以使用以下两种方法进行检测,判断该页面链接是否存在SQL注入漏洞。
加引号”法
在浏览器地址栏中的页面链接地址后面增加一个单引号,如下所示:http://www.xxx.com/xxx.asp?id=YY’,然后访问该链接地址,浏览器可能会返回类似于下面的错误提示信息:Microsoft JET Database Engine 错误’80040e14’,字符串的语法错误在查询表达式’ID=YY’中。
如图所示,页面中如果返回了类似的错误信息,说明该网站可能存在SQL注入攻击的漏洞。
“1=1和1=2”法
“加引号”法很直接,也很简单,但是对SQL注入有一定了解的程序员在编写程序时,都会将单引号过滤掉。如果再使用单引号测试,无法检测到注入点了。这时,可以使用经典的“1=1和1=2”法进行检测。
如果正常页面链接地址为:http://www.xxx.com/xxx.asp? id=YY,在浏览器中分别输入以下两个链接地址,分别查看它们返回的结果值。
http:// www.xxx.com/xxx.asp? id=YY and 1=1。
http:// www.xxx.com/xxx.asp? id=YY and 1=2。
如果存在注入点的话,浏览器将会分别显示为:
正常显示,内容与正常页面显示的结果基本相同。
提示BOF或EOF(程序没做任何判断时),或提示找不到记录,或显示内容为空(程序加了on error resume next),如图所示。
如果没有注入点的存在,也很容易判断。
述两种链接一般都会有程序定义的错误提示,或提示类型转换时出错。
再次提醒:可能的SQL注入点一般存在于登录页面、查找页面或添加页面等用户可以查找或修改数据的地方