web漏洞之SQL注入

目录

一、概述

1.1什么是SQL注入

1.2原理

二、分类

2.1按照数据提交方式分类

2.2按照注入点类型来分类

2.3按照执行效果来分类

三、注入流程

四、验证方法

3.1数字型注入验证

3.2字符型注入验证

五、攻击方法

5.1猜解SQL查询语句中的字段数

5.2找回显点

5.3获取数据库名称

5.4查询表名

5.5查询字段

5.6查信息

六、防御方法

七、绕过姿势(常见)

八、危害


一、概述

1.1什么是SQL注入

web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

1.2原理

攻击者通过用户可控参数中修改或拼接SQL语句,从而破坏原有SQL结构,让SQL数据库执行恶意的语句

二、分类

2.1按照数据提交方式分类

1.get注入

2.post注入

3.Cookie注入

4.HTTP头部注入

2.2按照注入点类型来分类

1.数字型注入点

2.字符型注入点

3.搜索型注入点

2.3按照执行效果来分类

       1.基于布尔的盲注

       2.基于时间的盲注

       3.基于报错的注入

       4.联合查询注入

       5.堆叠注入

6.宽字节注入

三、注入流程

       1.判断是否存在注入点,注入是字符型还是数字型

       2.猜解SQL查询语句中的字段数(通常使用order by)

       3.确定显示位置

       4.获取当前数据库的名字

       5.获取数据库中的表名

       6.获取表中的字段名

7.获取所需的数据

四、验证方法

这里我们以URL中的注入为例,其他数据交互点相同,添加相同的参数

3.1数字型注入验证

       ①and验证:在URL后加and 1=1 :www.text.com/text.php?id=1 and 1=1,语句执行正常,与原始页面如任何差异

②在URL后面添加and 1=2:www.text.com/text.php?id=1 and 1=2,语句可以正常执行,但是没有查询出结果,返回数据与原始网页存在差异

满足以上两点就可以认为存在数字型SQL注入,如果是登录框或者其他,在输入参数后进行添加如上两个步骤即可。

注:也可以采用别的方法验证比如在原始数据后面加一减一、

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值