sql-labs(1~~4关)漏洞分析

sql-labs(1~~4关)漏洞分析

1.sql注入的类型

根据注入位置数据类型可将SQL注入分为两类:数字型和字符型

例如:
数字型:select * from 表名 where 字段名(id) = 用户输入的id
id = 1,2,3…

例如:
数字型:select * from 表名 where 字段名(id) = ‘用户输入的id’
id = ‘1’,‘2’,‘3’…

在这里插入图片描述

2.GET基于报错注入的SQL注入发现

通过在URL中修改对应的ID值,为正常数字、大数字、字符(单引号、双引号、括号)、反斜杠\来探测URL中是否存在注入点。

在这里插入图片描述

前面4关都是,有很明显的报错回显的。

3.对每一关的报错回显进行分析

第一关基于GET型的报错,单引号的字符串注入

在这里插入图片描述
测试的提示说,请我们输入一个数字作为id的参数

当我们输入的id=1时,回显出来login_namePassword的值

在这里插入图片描述
当我们输入的id=1’时,回显报错
在这里插入图片描述
我们对报错的内容进行分析''1'' LIMIT 0,1'
单引号是要闭合的,最左边和最右边的单引号表示字符串的错误信息,真正的报错内容为'1'' LIMIT 0,1
然而,我们输入的内容为1',那么原来的语句就是'id' LIMIT 0,1
可以揣测SQL语句为:

select login_name,password from 表名 where id = 'id' limit 0,1

4.对每二关的报错回显进行分析

当我们输入的id=1’时,回显报错
在这里插入图片描述
我们对报错的内容进行分析'' LIMIT 0,1'
单引号是要闭合的,最左边和最右边的单引号表示字符串的错误信息,真正的报错内容为'LIMIT 0,1
然而,我们输入的内容为1',那么原来的语句就是id LIMIT 0,1
可以揣测SQL语句为:

select login_name,password from 表名 where id = id limit 0,1

4.对每三关的报错回显进行分析

当我们输入的id=1’时,回显报错
单引号 +括号

在这里插入图片描述
我们对报错的内容进行分析''1'') LIMIT 0,1'
单引号是要闭合的,最左边和最右边的单引号表示字符串的错误信息,真正的报错内容为'1'') LIMIT 0,1
然而,我们输入的内容为1',那么原来的语句就是('id') LIMIT 0,1
可以揣测SQL语句为:

select login_name,password from 表名 where id = ('id') limit 0,1

4.对每四关的报错回显进行分析

当我们输入的id=1’ ,id=1),id=1’)或id=1’))))时,不回显报错

在这里插入图片描述
在mysql中"“中的1,1’,1”,1)’,1’)))))中的内容会被隐形转换成1,本道题中,我们可以使用反斜杠进行转义或输入栓引号,就是使用栓引号来进行分析
当我们输入的id=1"时,不回显报错
在这里插入图片描述
我们对报错的内容进行分析'"1"") LIMIT 0,1'
单引号是要闭合的,最左边和最右边的单引号表示字符串的错误信息,真正的报错内容为"1"") LIMIT 0,1
然而,我们输入的内容为1',那么原来的语句就是(''id") LIMIT 0,1
可以揣测SQL语句为:

select login,password from 表名 where id = ("id") limit 0,1

ps

SQL注入打牢基础,关键明白漏洞原理,找到注入点,后续就很得心应手了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值