WEB开发网
开发学院网络安全安全技术 SQL注入攻击及其防范检测技术研究 阅读

SQL注入攻击及其防范检测技术研究

 2008-11-01 13:29:27 来源:WEB开发网   
核心提示: Select * from users where username='admin' and password='smith’如果分别给username和password赋值“admin' or 1=1--”和&ldquo

Select * from users where username='admin' and password='smith’

如果分别给username和password赋值“admin' or 1=1--”和“aaa”。那么,SQL脚本解释器中的上述语句就会变为:

select * from users where username=’admin’ or 1=1-- and password=’aaa’

该语句中进行了两个判断,只要一个条件成立,则就会执行成功,而1=1在逻辑判断上是恒成立的,后面的“--”表示注释,即后面所有的语句为注释语句。同理通过在输入参数中构建SQL语法还可以删除数据库中的表,查询、插入和更新数据库中的数据等危险操作:

(1)jo'; drop table authors—如果存在authors表则删除。

(2)' union select sum(username) from users—从users表中查询出username的个数

(3)'; insert into users values( 666, 'attacker', 'foobar', 0xffff )—在user表中插入值

(4)' union select @@version,1,1,1--查询数据库的版本

(5)'exec master..xp_cmdshell 'dir' 通过xp_cmdshell来执行dir命令

2.2. SQL注入攻击实现过程

SQL注入攻击可以手工进行,也可以通过SQL注入攻击辅助软件如HDSI、Domain、NBSI等,其实现过程可以归纳为以下几个阶段:

(1)寻找SQL注入点;寻找SQL注入点的经典查找方法是在有参数传入的地方添加诸如“and 1=1”、“and 1=2”以及“’”等一些特殊字符,通过浏览器所返回的错误信息来判断是否存在SQL注入,如果返回错误,则表明程序未对输入的数据进行处理,绝大部分情况下都能进行注入。

上一页  1 2 3 4 5 6  下一页

Tags:SQL 注入 攻击

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接