由一条like语句引发的SQL注入新玩法

  • A+
所属分类:安全开发
由一条like语句引发的SQL注入新玩法

声明:公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载。未经授权,严禁转载,如需转载,请联系开白!

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者及本公众号无关!!!


注:本文首发于先知社区,https://xz.aliyun.com/t/8116






START

0x01前言

群里一位老哥发了一个挺有意思的SQL语句,使用like但是没有使用模糊查询,却匹配出了所有字段

由一条like语句引发的SQL注入新玩法


小菜比感觉很新鲜,所以简单进行了一番学习,在学习过程想起一个检测SQL注入的payload:

and 1 like 1

但是当时并没有跟进学习,所以应该也不算新技巧了

0x02跟进探索学习

首先从字段值的不同的类型来测试


1、int型
id存在且id=1
由一条like语句引发的SQL注入新玩法

id存在且id=2

由一条like语句引发的SQL注入新玩法


初识端倪:

当字段值类型为int时,字段值=后面的表达式为True,后面的值等于1,即效果为id=1,False则等于0,即效果为id=0,mysql中列值从1开始,因此返回为空,id=3 ,id不存在;进一步验证猜想

由一条like语句引发的SQL注入新玩法


完全验证前面的猜想

2、字符串型
根据前面的测试,意识到可能存在运算符的优先级问题,like优先级高于=, 下面两条语句等价
select * from admin where name=1 like 2;select * from admin where name=(1 like 2)

更直观的演示如下

由一条like语句引发的SQL注入新玩法


当字段值类型为字符串时,字段值=后面的表达式为True,效果为or 1=0 ,False效果则为or 1=1

0x03其他玩法

下面的测试中新增了两行test数据

还可以用于判断列名是否存在:

由一条like语句引发的SQL注入新玩法


当列名存在时,可通过赋值排除某一项

由一条like语句引发的SQL注入新玩法


0x04进一步发现

同样还是like语句返回True或False,也就是1和0的问题,在列值为字符串类型时,这里能够实现or 1=1效果(也就是只能应用于列值类型为字符串的时候)

由一条like语句引发的SQL注入新玩法


算是一种新型万能密码吧,可看后面的玩法应用

0x05玩法应用

1、检测SQL注入

此处id的字段值为int型(如前面验证的那样,此用法与注入类型无关,而与字段值类型相关)
id=1%27%20like%201%23
由一条like语句引发的SQL注入新玩法
id=1%27%20like%200%23
由一条like语句引发的SQL注入新玩法

2、新型万能密码

此处username字段值类型字符串,因此like后面的值是可以随意的,只要构造出(xx' like ...)为Fasle即可,如xx' like 0 、xx' like 2、xx' like “c”....

类型1:

由一条like语句引发的SQL注入新玩法


类型2:

由一条like语句引发的SQL注入新玩法


'+False# 有同样效果


3、判断列名是否存在
由一条like语句引发的SQL注入新玩法

由一条like语句引发的SQL注入新玩法


0x06总结

虽然不算新的东西了,但是能够从中发现一些新玩法也算不错。感觉更多的应用于SQL注入检测、盲注当中吧,脑袋瓜不太好,没有发现更多玩法,有其他玩法的师傅们来带带弟弟可以吗,嘤嘤嘤嘤嘤。。。


感谢先知社区@康同学丫丫丫大佬指出的一处错误!!

由一条like语句引发的SQL注入新玩法






END


免费星球:要求每个人在两周内输出一篇文章发到星球里面,文章为星球成员自己整理的内容,如超过两周没有文章输出的将被拉黑一个月,超过3次将被踢出星球,永久禁止加入!

收费星球:进入的星球成员可以在里面学习一年,包括贝塔安全实验室整理好的学习资料,可让星球管理及合伙人邀请加入免费星球,可以不用发文章,加入的免费星球免踢一年!

由一条like语句引发的SQL注入新玩法

由一条like语句引发的SQL注入新玩法

由一条like语句引发的SQL注入新玩法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: