[SUCTF 2019]EasySQL1

这是一个简单的SQL注入题,但是因为我的SQL基础约等于0,所以做起来很难。

首先试试引号是否被过滤

可以看到单引号、双引号都被过滤了,试试其他的盲注都不行,基本上可以确定不能用这种方法。

在测试的过程中发现,输入数字会返回1,输入字母则不显示任何内容。所以推测后端是这样的结构:

复制代码
select $_POST['query'] || flag from Flag

如果||左边执行成功,则返回。所以这里可以构造payload:*,1

拿到flag,select *,1||flag from Flag 。奇怪的是 payload如果是 1,*则不显示任何内容。还是学的不深,经验不够。

除了这种盲注,还可以用堆叠注入的方式,先试一下能否进行堆叠注入。1;show databases;#

查询到了数据库。接着看看数据表。2;showtables;#

可以看到有个Flag表,那么flag应该就在这个表里了。2;show columns from Flag;#

返回nonono,猜测过滤了Flag。所以更加确定后端语句中有 || flag From Flag这样的结构。这里再次想到拼接。即使用payload 2;select *,1

可以看到得到了Flag,其实跟第一种方法差不多,主要是猜测出存在 ||flag from Flag的结构。

除了拼接合适的SQL语句外,还可以修改SQL语句的模式,让||不是作为或逻辑运算符,而是作为字符连接符。

这样是把 select 1|| flage from Flag 替换成 select 1flag From Flag,可以看到查询的结果是1flag,不知道为啥这样也能把flag提取出来,后面做多了可能能想明白。

相关推荐
自不量力的A同学6 分钟前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
Exquisite.8 分钟前
Mysql
数据库·mysql
全栈前端老曹34 分钟前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
R1nG86337 分钟前
CANN资源泄漏检测工具源码深度解读 实战设备内存泄漏排查
数据库·算法·cann
原来是你~呀~44 分钟前
Strix:AI驱动的全自动安全测试平台,LinuxOS部署
网络安全·自动化渗透测试·strix
fendouweiqian1 小时前
AWS WAF(配合 CloudFront)基础防护配置:免费能做什么、要不要开日志、如何限制危险方法
网络安全·aws·cloudfront
阿钱真强道1 小时前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
乾元1 小时前
终端安全(EDR):用深度学习识别未知勒索软件
运维·人工智能·网络协议·安全·网络安全·自动化·安全架构
逍遥德1 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring