解题:
前面怎么到这步的不做赘述(堆叠注入)。这步的命令:1’;show columns from FlagHERE#;
那么要怎么打开这个表呢?
有几个解法:
解法一:使用handler open,handler close,handler read first。
HANDLER … OPEN语句打开一个表,使其可以使用后续HANDLER … READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER … CLOSE或会话终止之前不会关闭。
方法2:
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
思路:
这里发现输入1之后会有信息显示。爆出表名有两个,一个是words一个是FlagHere。那么就猜测他的查询语句是(输入1的话):select id,data from words where id=‘1’;
sql语句:
1’;
alter table words rename to words1;
alter table FlagHere rename to words;
alter table words change flag id varchar(50);#
但是这里rename被过滤了。
方法3:
无列名注入!!