前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >由一条like语句引发的SQL注入新玩法

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

作者头像
安全小王子
发布于 2020-08-28 07:47:22
发布于 2020-08-28 07:47:22
6.2K00
代码可运行
举报
文章被收录于专栏:betasecbetasec
运行总次数:0
代码可运行

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

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

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

START

0x01前言

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
and 1 like 1

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

0x02跟进探索学习

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

1、int型

id存在且id=1

id存在且id=2

初识端倪:

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

完全验证前面的猜想

2、字符串型

根据前面的测试,意识到可能存在运算符的优先级问题,like优先级高于=, 下面两条语句等价

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from admin where name=1 like 2;
select * from admin where name=(1 like 2)

更直观的演示如下

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

0x03其他玩法

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

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

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

0x04进一步发现

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

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

0x05玩法应用

1、检测SQL注入

此处id的字段值为int型(如前面验证的那样,此用法与注入类型无关,而与字段值类型相关)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
id=1%27%20like%201%23
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
id=1%27%20like%200%23

2、新型万能密码

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

类型1:

类型2:

'+False# 有同样效果

3、判断列名是否存在

0x06总结

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

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

END


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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SQL注入漏洞详解
SQL注入是因为后台SQL语句拼接了用户的输入,而且Web应用程序对用户输入数据的合法性没有判断和过滤,前端传入后端的参数是攻击者可控的,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。比如查询、删除,增加,修改数据等等,如果数据库的用户权限足够大,还可以对操作系统执行操作。
谢公子
2022/01/13
2.3K0
SQL注入漏洞详解
Sql注入衔接
所谓SQL注入,就是通过把SQL命令插入到 Web表单提交 或 URL 或 页面请求等的查询字符串中,最终达到欺骗服务器执行恶意的SQL命令。
天钧
2019/07/26
1.2K0
Sql注入衔接
Usual*** CMS 8.0代码审计
声明:公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载。未经授权,严禁转载,如需转载,请联系开白!
安全小王子
2020/08/28
4490
Usual*** CMS 8.0代码审计
【SQL注入】SQL注入知识总结v1.0
First of all,你的目标得有可以利用的漏洞才行,不存在什么万能代码的...
一名白帽的成长史
2019/10/08
1K0
【SQL注入】SQL注入知识总结v1.0
SQL注入ByPass的一些小技巧
01 — 前言 SQL注入从古至今都是一个经久不衰的影响严重的高危漏洞,但是网络安全发展到现在,如果想通过SQL注入直接获取数据或者权限,多多少少都需要绕过一些网站前面的WAF,无论是基于规则的还是带
xfkxfk
2018/03/29
2K0
SQL注入ByPass的一些小技巧
超详细SQL注入漏洞总结
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
网络安全自修室
2022/01/24
5.1K0
超详细SQL注入漏洞总结
sql注入—基础篇,适合小白学习
用我的话说SQL注入就是利用网站前端与数据库连接处的漏洞,导致我们输入的语句能过在数据库中非常规的执行。
字节脉搏实验室
2020/12/18
1.7K0
【Pikachu】SQL Inject(SQL注入)
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。
菜菜有点菜
2022/03/17
2.1K0
【Pikachu】SQL Inject(SQL注入)
SQL注入类型危害及防御
注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。
全栈工程师修炼指南
2020/10/23
2.9K0
SQL注入类型危害及防御
SQL学习之SQL注入总结
Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的。 sql注入分类: 基于联合查询 基于错误回显 基于盲注,分时间盲注和布尔型的盲注 基于user-agent 基于feferer 基于cookie 二次注入 宽字节注入 注入一个网站时,我们先要找出后台构造的查询语句,然后判断是否存在注入点。 常规的找出查询语句的方法是在后面加’ 、 “ 、 ‘)  、 “),看是否报错,然后用and 1=1和and 1=2判断是否存在注入点
Jetpropelledsnake21
2018/06/14
1.8K0
bwapp之sql注入_sql注入语句入门
0x0E、SQL Injection – Blind – Boolean-Based
全栈程序员站长
2022/11/09
8.5K0
bwapp之sql注入_sql注入语句入门
[基础+实战]关于我所了解的SQL注入
MySQL内置的函数能够让我们更为快捷的得到想要的信息,操作字符串的函数也有助于在注入时绕过WAF。这里列举一些注入常用的函数。
天钧
2019/09/03
1.5K0
[基础+实战]关于我所了解的SQL注入
SQL注入从入门到进阶
本文章产生的缘由是因为专业老师,让我给本专业的同学讲一哈SQL注入和XSS入门,也就是本文的入门篇,讲完两节课后,发现自己对于SQL注入的理解也就仅仅局限于入门,于是有了进阶章节的产生。
小简
2022/12/29
3.9K0
SQL注入从入门到进阶
SQL注入详解
SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。
飞天小子
2018/08/31
2.8K0
SQL注入详解
SQL注入语句和方法总结
前提需要工具(SQL Query Analyzer和SqlExec Sunx Version)
沙漠尽头的狼
2021/12/01
1.1K0
渗透测试SQL注入漏洞原理与验证(2)——SQL注入漏洞利用
攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后台数据库乃至整个应用系统的入侵。
zhouzhou的奇妙编程
2024/09/23
3800
SQL注入攻击与防御
在动态网站中,往往需要用户传递参数到服务器,这些参数往往需要和数据库进行交互;当服务端没有对参数进行安全过滤时,攻击者在参数中加入恶意的SQL语句结构,便编造成了SQL注入漏洞.
婷婷的橙子
2020/11/02
7.9K0
SQL注入攻击与防御
SQL注入总结
SQL注入的攻击方式根据应用程序处理数据库返回内容的不同,可以分为可显注入、报错注入和盲注。
HACK学习
2019/08/06
2K0
SQL注入学习「建议收藏」
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
全栈程序员站长
2022/09/24
6950
SQL注入(入门)
收到请求的后端PHP代码会将GET方式传入的id=1与前面的SQL查询语句进行拼接,最后传给执行MySQL的查询语句如下:
Andromeda
2022/10/27
2K0
SQL注入(入门)
相关推荐
SQL注入漏洞详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验