利用sqli-labs了解order by注入

文章详细阐述了SQL注入中的orderby利用,包括数字型和字符型注入的判断与利用方法,如报错注入、布尔盲注和时间盲注。同时讨论了union、groupby的使用,以及intooutfile的危险性与写入技巧。文章还提醒了orderby在union子句中的限制,并对比了union与unionall的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

order by 注入

背景

1.数字型 order by 注入sql语句
select * from users order by $id

2.字符型 order by 注入sql语句
select * from users order by '$id'

数字型 order by 注入 判断语句:

用排序的方式判断,两者返回排序不同
?sort=1 desc
?sort=1 asc

用随机数的方式判断,两者返回排序不同
?sort=rand(true)
?sort=rand(false)

用延时的方式验证
?sort=sleep(3) //等待3*行数秒才会显示结果

order by 与 union 一起使用的方法

(0)注意union在没有括号的情况下只能使用一个 order by,如果直接运行如下语句,会报错

select * from u1 order by score asc union select * from u2 order by score asc

(1)方法一:去掉前一个select语句的 order by,意思是先union再对整个结果集order by

select * from u1 union select * from u2 order by score asc

(2)方法二:通过两个查询分别加括号的方式,注意 order by 不能出现在union的子句中,但可以出现在子句的子句中。意思是先让两个结果集分别order by,然后对结果集进行union

select * from 
(select * from u1 order by score asc)u3 
union 
select * from 
(select * from u2 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值