SQL注入(一)

SQL注入的原理:当Web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

本质:把用户输入的数据当作是代码的一部分执行

两个关键点(SQL注入必须满足的两个条件,所有的漏洞都是有条件的):
(1)用户能够控制输入的内容
(2)数据库能够执行用户输入的内容

SQL的危害:盗取网站的敏感信息,绕过网站后台认证
万能密码: ' or 1=1#   ' or  '1'='1'#
后台登录语句:SELECT * FROM 表 WHERE username = ’$user' and password = '$pass'

SELECT * FROM 表 WHERE username = '' or 1=1#'  and password = '$pass'
其中,#表示的是注释;在MySQL中%23,--空格,--+,-- qwer也都表示注释
因此,上方的语句就等价于SELECT * FROM 表 WHERE username = '' or 1=1

'' or 1=1

两个单引号之间为空,因此username为空这个条件不存在,所有为假;1=1为真;真或假的结果为真,因此这条语句为真,就可以成功登录,绕过了后台网站的认证。

什么是注入?
SQL注入,就是通过把SQL命令插入到WEB表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。

注入的分类
(1)按照注入点类型分类:数字型(整形)注入、字符型(字符串)注入、搜索型注入(搜索时没有过滤搜索参数,一般在url中包含keyword=关键字)
(2)按照注入方法分类:布尔盲注、时间盲注、报错注入、联合查询注入、堆注入

注入的流程
(1)寻找注入点:和数据库有交互的地方
(2)判读闭合方式(数字型还是字符型)

闭合的作用
手工提交闭合符号,结束前一段查询语句,不需要的语句可以使用注释符注释掉

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值