desc是函数describe的简写,一般用来提供和表相关的列信息来查看表的结构。
很多CTF赛题考点都是运用它的一些我们不太熟悉的特性或者说使用方法。常规来讲desc后面跟的是表名,但事实远不止于此,除了表名还可以有第二个参数。 而且在第二个参数中,它除了列名之外,还可以是包含sql通配符的字符串。
演示一下:
它会出一个表的一个结构。
下一个参数去跟一个列名:
例题分享
第一步先拿到源码
可以选择在这两个地方注入:
在中间加一堆引号这时候就会变成两个变量,因为前引号和后引号闭合,新加的在后面去闭合。
绕过desc的使用,到select查询语句进行注入
构造语句
这是我们传递的一个参数,实际的情况是:
假设能够实现成功,实际返回值有两个:
所以就要对它做一个限制(偏移),比如说limit限制输出是一个offset偏移是一个,就是跳过第一个,然后再去执行一下。
但是这个地方不要单单推不能用一个参数
我们要的数据(flag)就存在这个表中,要去查这个数据就要去拿这张表的一个列名,就变成一个concat
用它转成16进制,在他前面去加一个0X对吧,这时候就会拿到这个列明。
万能密码
从某张表中去读一条数据,传递的这种用户名和密码如果存在它会认为登陆成功。
举栗子:
通过false逻辑来产生true逻辑
- 还没有人评论,欢迎说说您的想法!