[61dctf]inject

本题考察了Mysql中反引号与不同引号的区别。。

在这里插入图片描述

提示有源码。。扫描一下:
在这里插入图片描述

看见了index.php~,访问一下,就发现:
在这里插入图片描述

desc table_name 是用来查询表结构的,例如:
在这里插入图片描述
如果要成功,就必须保证此表存在。。

我们也看到了后面的源码。。。需要我们构造Payload,可是Payload也会被带入表中查询。。肯定会出错的。。。

这里面就用到了反引号的作用。。

简单理解

我们看一下实验:
在这里插入图片描述

反引号是用来区分保留字与普通字符。。。看网上的博客看的一知半解。。自己试了一下,下面说一下我们总结。

首先讲一下反引号。

首先建一个表为Mikasa
里面有两个字段 select 与 id

在这里插入图片描述

我们试一下查询select列:
在这里插入图片描述
发现报错。
我们实时加上反引号:

在这里插入图片描述

查询成功。
所以反引号就是这么用的。。

下面来说一说这道题我的理解。。

首先绕过 desc table_name
这里面有一个特性,,

在这里插入图片描述

就是如果这样查询的话,那么就会将mikasa作为adwd查询,显然是没有这个表的。。。。因此查询为空,但是不报错。。

由此可以构造联合查询语句:

flag` `union select 123

在这里插入图片描述

用Limit试试:
在这里插入图片描述

发现可以。。。。。

为什么呢。我们完整的复制一下这个Payload

select 'flag{xxx}' from secret_flag` `union select%20 13 limit 1,1

做了一下实验。。

在这里插入图片描述

发现在子句使用··是不影响的。。。

于是后面的就可以用联合查询,快乐了233333

猜你喜欢

转载自blog.csdn.net/Mikasa_/article/details/89397304
61