BUUCTF——随便注

BUUCTF——随便注

看到题目我们先试着正常查询

BUUCTF——随便注

当上传的数据被直接显示在了URL中,很有可能这里存在sql注入漏洞,接下来,我们可以对猜想进行验证。

BUUCTF——随便注

BUUCTF——随便注

通过上面的验证,我们可以直到这里存在sql注入漏洞,并且传递的参数被单引号包裹

BUUCTF——随便注

从上面可以看到,这里过滤了一些字符,导致我们不能用联合查找的方式进行注入,所以我们换一个思路,看一看是否可以进行堆叠注入

BUUCTF——随便注

通过上面的测试可以看到,可以进行堆叠注入。
先查表。

BUUCTF——随便注

查列名,在这里可以看到数字这张表里有flag。 但是select被过滤了,我们无法得到flag的值。 于是我们又换思路。
在这里我们可以采用预编译语句,来绕过select的过滤。

BUUCTF——随便注
BUUCTF——随便注

在预编译语句中

set #用来设置变量以及变量的值 set @sql=concat(‘se’,‘lect flag from
1919810931114514;’);

prepare #预备语句,并为它设置名称 prepare cx from @sql;

execute #执行语句 execute cx;