SWPU2019 - Web1

1 minute read

SWPU2019 - Web1

0x00 前言

通过这道ctf题目记录一下两个比较实用的 trick

0x01 MariaDB特性

Maria数据库的这个表可以查表名:

About MariaDB

成立于2009年,MySQL之父Michael “Monty” Widenius用他的新项目MariaDB完成了对MySQL的“反戈一击”。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。

0x02 无列名注入

创建一个数据库叫 testdb,再创一个 user 表,结构如下:

往这个表里插入一些数据:

mysql> insert into user values(1,'admin','778778'),(2,'Artd33','123520');

正常查询:

mysql> select * from user;

这时再使用一个union查询:

mysql> select 1,2,3 union select * from user;

利用数字3代替未知的列名,需要加上反引号。后面加了一个a是为了表示这个表(select 1,2,3 union select * from user)的别名,不然会报错。

mysql> select `3` from (select 1,2,3 union select * from user)a;

当 ` 不能使用时,用别名来代替:

mysel> select b from (select 1,2,3 as b union select * from user)a;

0x03 做题心得

一开始以为是xss,看了WP才知道是sql注入。判断漏洞的存在不能只看表面,要仔细地分析各种功能的代码实现,这又牵扯到了开发能力……