BUUCTF刷题 SUCTF 2019]EasySQL

解题过程

点开题目发现是这样,老样子,输几个数字玩玩,发现不管怎么输,回显都是1,

 

这说明这条SQL语句有点问题,再试一下其他的,发现过滤了很多常用的SQL注入的字符串。不仅包含图里的,还包含from、where、information_schema等,可以说用常规的注入肯定是注不出来了。

这时候想到了之前搞的堆叠注入,尝试一下

1;show databases;直接出来所有的数据库,再查看表

 

 

 

 

 

 

 

 

由于from被过滤了,所以也就不尝试读字段名了,那么接下来就卡住了,不知道该怎么往下走。

看了大佬的WP,发现大佬拼出了后台利用的SQL查询语句

select 接收的数据 ||flag from Flag;

 

拿去自己数据库拼了一下看查询的数据

 

 

 

 

 

 

 

可以发现不管输入什么数字,显示的都会是1,符合题目里出现的情况,只能说大佬太猛了,这都拼出来了

在自己数据库玩的时候可以看到相当于输入的值与"|| flag"组成了一个字段名,里面放的都是1。根据SQL语句,可以尝试加入*号,把所有字段都查询,而且*也没被屏蔽。

输入*,1进行拼接。

 

 

得到flag

 

posted @ 2020-09-26 16:01  EZ4s1mple  阅读(154)  评论(0)    收藏  举报