在日常WEB程序开发中,需要避免一些常见的漏洞和攻击,要防范这些漏洞和攻击就得先了解这些漏洞的原理和常见使用途径。从而在编程的过程中考虑到这些问题。下面我们NR来简单的和大家介绍下SQL注入漏洞的原理。
SQL注入;攻击者通过WEB表单,URL数据输入,插入恶意的SQL语句,并被服务器执行。
不同的数据库表有自己的语句,所以不同数据库注入语句会有点不同。SQL注入类型;
1;数字型;and 1=1/ and 1=2 / OR 1=1/ or 1=2/ 1 like 1等等
2;字符型;and '1'='1 / and '1'='2/ or '1'='1 / 1' like '1/ 注释符合 等等
按返回信息;显示错误信息,显错注入。 和不显示错误信息,盲注。
SQL注入的形成;
1;数据与代码未严格分离。
2;用户提交的参数数据未充分检查过滤而直接执行。
SQL注入的作用;
1;绕过登录验证,直接登录系统后台。
2;获取WEB系统和数据库中敏感信息。
3;对文件系统操作,读取或写入文件或加入WEBSHELL木马。
4;对系统注册表进行读写删操作。
5;执行系统命令,远程执行命令。例如net use账户或开启3389桌面。
6;查询数据的库名称,表名,字段名,字段值,配置文件,操作系统版本等信息。
SQL注入出现位置
1;URL参数,HTTP包头中各种参数,搜索框登录框表单,一般和数据库有交互的地方。
SQL注入漏洞的判断
一般是对有操作数据库的URL去构造测试语句,如果登录了后台可以尝试的URL地址会更多。
http://blog.XXXXX.com/AA1.php?id=2 正常显示网页内容
http://blog.XXXXX.com/AA1.php?id=2 and 1=1 测试注入也正常显示网页内容
SQL注入会用到SQL语句 union ,该语句是用于合并多个SELECT语句结果集。
网友评论 comments