sqli-labs靶场通关笔记:第46-53关 order by注入

目录

[第46关 order by注入](#第46关 order by注入)

[第47关 '闭合的order by注入](#第47关 '闭合的order by注入)

[第48关 无报错回显的数字型order by注入](#第48关 无报错回显的数字型order by注入)

[第49关 无报错回显的'闭合型order by注入](#第49关 无报错回显的'闭合型order by注入)

[第50关 基于order by的堆叠注入](#第50关 基于order by的堆叠注入)

[第51关 '闭合的报错注入或堆叠注入](#第51关 '闭合的报错注入或堆叠注入)

[第52关 数字型盲注或堆叠注入](#第52关 数字型盲注或堆叠注入)

[第53关 '闭合的盲注或堆叠注入](#第53关 '闭合的盲注或堆叠注入)


第46关 order by注入

输入?sort=1和?sort=2看一下页面显示。发现返回的数据相同,但是顺序不同,猜测可能是利用了order by排序语句。当sort=1时是根据第一列的字段id来排序,sort=2时根据username字段排序。

在参数后面加上单引号,回显了报错信息,那么使用报错注入试试吧。

第47关 '闭合的order by注入

和上关的区别是使用了单引号包裹,要注意的是,这会导致 SQL 语句将$id当作一个字符串常量来处理,而不是列名或排序索引。由于字符串常量没有实际的排序意义,MySQL 会忽略这个排序条件,通常会按照表中数据的默认顺序返回结果,也就是插入数据时的顺序或者存储引擎决定的物理顺序。所以,无论你输入什么值,返回的结果顺序都不会改变。

第48关 无报错回显的数字型order by注入

利用布尔盲注,构造表达式来影响排序结果。

复制代码
#如果数据库名长度>5,则按第一列排序,否则按第二列排序;
order by if(length(database())>5,1,2)

这里数据库名长度是8,大于5会按第一列排序,写大于10也会按照第一列排序。因为MySQL 优化了常量表达式:当 IF 的两个分支都是常量时,MySQL 可能认为无论条件如何,排序规则都不变,因此忽略条件判断。所以应该避免使用常量作为排序键,改用与数据相关的表达式。

正确的语法构造是:

复制代码
#如果条件为真,按 id 列排序,否则按 username 列排序;
order by if(length(database())>5,id,username)

第49关 无报错回显的'闭合型order by注入

这关可以利用时间盲注,但是注意点较多。

复制代码
?sort=1' and if(length(database())<10,sleep(0),sleep(5)) --+

1.将IF判断设置为,true马上响应,false延迟响应。因为order by是对结果集进行排序,每一行都会计算一次,所以会导致多次延迟(行数次延迟),而且MySQL在排序时可能会优化,利用sleep函数时页面会一直处于长时间加载状态,最终会超过服务器允许的最大响应时间,而被强制终止,返回 500 错误。

2.order by 后面不能直接跟and,它的语法结构只接受列名、表达式或数字位置。 不过可以在排序表达式里使用包含and的逻辑条件来实现更复杂的排序规则。

3.这条注入语句破坏了原本正常的order by逻辑。原本order by期望的是列名,注入后变成了一个布尔表达式和 sleep 函数的组合,数据库无法按此进行有效的排序,所以结果可能会是乱序。

第50关 基于order by的堆叠注入

本关使用了mysqli_multi_query函数,那么直接堆叠注入。

第51关 '闭合的报错注入或堆叠注入

第52关 数字型盲注或堆叠注入

第53关 '闭合的盲注或堆叠注入

这三关就是把前面的几关结合在一起,使其有多种解题方法。

相关推荐
见青..11 小时前
phpMyAdmin权限提升
web安全·网络安全·phpmyadmin
数据知道12 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
世界尽头与你16 小时前
Android Root 检测原理
android·安全·网络安全·渗透测试
kp0000016 小时前
如何平衡模型输出的“有用性”和“安全性
人工智能·安全·网络安全·信息安全·ai安全
世界尽头与你18 小时前
iOS 越狱检测原理
安全·网络安全·ios·信息安全·渗透测试
kp000001 天前
大模型输出造成信息泄露类型
人工智能·网络安全·信息安全·ai安全
kp000001 天前
System Prompt Leakage(系统提示词泄露)及安全防御
网络·安全·网络安全·信息安全·prompt·ai安全
X7x51 天前
攻防对抗的结构化思维:深度拆解网络杀伤链(Kill Chain)与现代防御演进
网络安全·网络攻击模型·安全架构·网络杀伤链·kill chain
kp000002 天前
AI大模型,如何区分善意提问与Prompt注入攻击
人工智能·网络安全·信息安全·prompt·ai安全
kp000002 天前
AI系统输入安全基线
人工智能·安全·网络安全·信息安全·ai安全