BUUCTF——随便注
看到题目我们先试着正常查询
当上传的数据被直接显示在了URL中,很有可能这里存在sql注入漏洞,接下来,我们可以对猜想进行验证。
通过上面的验证,我们可以直到这里存在sql注入漏洞,并且传递的参数被单引号包裹
从上面可以看到,这里过滤了一些字符,导致我们不能用联合查找的方式进行注入,所以我们换一个思路,看一看是否可以进行堆叠注入
通过上面的测试可以看到,可以进行堆叠注入。
先查表。
查列名,在这里可以看到数字这张表里有flag。 但是select被过滤了,我们无法得到flag的值。 于是我们又换思路。
在这里我们可以采用预编译语句,来绕过select的过滤。
在预编译语句中
set #用来设置变量以及变量的值 set @sql=concat(‘se’,‘lect flag from
1919810931114514
;’);
prepare #预备语句,并为它设置名称 prepare cx from @sql;
execute #执行语句 execute cx;