SQL注入攻击技术(一)--原理解析

准备环境

win2003虚拟机 需要安装SQL Server2008

一、原理

注入产生的原因是接受相关参数未经处理直接带入数据库查询操作(注入攻击属于服务端的攻击,因为它攻击的是服务器里面的数据库,xss是客户端的攻击)

注入最终与数据库,与脚本、平台无关

二、or漏洞解析(判断有无注入点的办法:)

1.单引号

2. 1=1(-1=-1,3=3),有些把1=1或2=2加入黑名单了,但是咱们可以试试别的,如     3=3.-3=-3;

Name和 password 是没有经过任何处理,直接拿前端传入的数据,这样拼接的SQL会存在注入漏洞。(帐户:yuan 123)

 

现在我们来分析一下:'or 1=1--(--注释的意思)为什么能登录系统,原因有如下:

1)、SELECT * FROM admin WHERE Name=''or 1=1 首先看这条查询语句,查询所有来自admin表的数据,条件name为空或者1=1,这两个条件只要一个满足就为真, Name=''or 1=1 现在1=1就是真而且是没任何作用的真,那么最终数据库执行的语句相当于 select * from Admin

(2)、因为Name值中输入了“--”注释符,后面语句被省略而登录成功。(常常的手法:前面加上'; ' (分号,用于结束前一条语句),后边加上'--' (用于注释后边的语句))

(3)、不同的程序万能密码也是不一样的,如ASP的万能密码是'or'='or' PHP的万能密码是'or 1=1/* (如果在登陆窗口输入错误的语法出现报错一般说明存在sql注入)详细请看: http://chengkers.lofter.com/post/14c64b_379726

三、找注入点:

也就是大型网站可能与数据库交互的地方:

1.登录的地方:用户名和密码一定是保存在数据库里面的

2.更新的地方:例如修改密码,一定会把密码带入到数据库中

3.注册账号的地方:账号密码都会保存在数据库中

4.留言板

注入可能出现在哪个地方:

http头、cookies、referee、user、agent、post提交数据包的地方等

原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/14192997.html