order by 字符串_CTF从入门到提升(六)order_by注入及例题分享

位运算符

ce522ca13842e59b85ddad6c246d517e.png

我们都知道常规的注入,比如id=100这种类型可以查询出一篇文章,如果把100换成99+1它一样可以查出,因为它会做计算。order_by 去判断列数的时候,如果把id=4换成3+1去执行,出来的结果并没有做计算,所以这个运算效果没有意义。

188829d98a01fb49e3ca53892e3530fd.png

5fe57a9f51cbafb7c5afa0d97d1e71ba.png

运算符如何运算呢?

位运算是将每一个值转化成一个二进制字符串。按位的“and”或“or”,假设2 | 3,转成字符串就是3。

9308aa14b24f2d19817ac132ee5acc94.png

ac942c3e68a14cb3d201fc974b217d24.png

ORDER BY

常规去使用order by的时候它后面会跟一个数字,通过它来判断列数,但实际上后面的参数应该是什么呢?

参数第一个位置必须是列名,可以用数字来代替,代表某一列。但是实际上后面还有还可以带一个可选参数,比如说ASC和DESC,意思是正序还是倒序升序还是降序,后面括号有个N在里头,它其实后面还可以跟好几列。

f2410cda6727957c3877cdeda9fb897b.png

先根据ID先做排序,如果排完之后存在同面同变量的,它就会根据你设置的第二个参数进行排序了。

f5288f5d6b7a11c82d95d0656e25868f.png

思考:

实际操作中如果能够控制代入ASC和 DESC,是不是也可以做一个注入呢?(大家可以思考操作试一下)order by 与bool型盲注结合

aa8dd66121166a73a1c97eb6ba3decad.png

c25abb0288290e09dd6370c29d96657c.png

3c889a4dbc7423c850b7228e607614f9.png

914bc49fb36a25c0e72e645236312824.png

2beec7decb7a62c53489b135bc21f2d7.png

举例

这是国外的某个网站上的一道题目,这道题目如果要访问地快可以使用VPN。

5bcd0862c514876f2c48327babf71011.png

可以发现 这里变成了倒序:

9825d8035e1d108cfa8e70c83263a510.png

为什么返回的顺序是7356呢?

345a4521493b270a63fa3feb2358dd8e.png

按位或,假设它是3236,那么它的原来结果是1234。

f38d67184a5b8d9249195b77f4f6bbff.png

和2去做一个“或”,结果全部计算之后再做排序。

3c0fda19be9f44dfb105b9f03273a328.png

假设正则表达式是以A字母为开头去和结果进行匹配,会发现正则表达式和它是不匹配的,返回值就是0。它的返回值就是和1进行“或”的结果。

da744f658469a2e8334567afbf52adf4.png

如果换成是字母B开头,它去匹配返回结果是1,按位2“或”拿到就是2的页面。

c1f908c5460ced7fddf96073e92d13a5.png

2f1b07244b87c7e5b6030882535923c2.png

脚本整理分享给大家

41dbe81265360fa03d6ff5a5740e00b5.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值