[SUCTF 2019]EasySQL

6 篇文章 0 订阅

[SUCTF 2019]EasySQL

在这里插入图片描述
先输入一个1 有回显,普通爆库爆表那套是行不通的。

在这里插入图片描述
最多把表搞出来 Flag。
在这里插入图片描述
1:
第一种方法比较强的话能从报错中猜出sql的查询语句:select $_GET[‘query’] || flag from flag
毕竟没有漏源码。
这里的"||"是表示或,如果前一个操作数为真,则不看后面的语句

Payload:*,1

解释一下:
sql=select.post[‘query’]."||flag from Flag";
如果$post[‘query’]的数据为*,1,sql语句就变成了select *,1||flag from Flag,
就是select *,1 from Flag,这样就直接查询出了Flag表中的所有内容。

引用网上大佬做的实验
在这里插入图片描述
这里会增加一个临时列,它的列名是1,然后那一列的值都为1

2:
第二种方法
思想是把"||"变成字符串连接符,而不是或
涉及到mysql中sql_mode参数设置,设置 sql_mode=pipes_as_concat字符就可以设置。
在oracle 缺省支持 通过 ‘ || ’ 来实现字符串拼接。
但在mysql 缺省不支持。需要调整mysql 的sql_mode
模式:pipes_as_concat 来实现oracle 的一些功能

Payload:1;set sql_mode=PIPES_AS_CONCAT;select 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yolo-0.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值