目录

一.关于Access数据库和简单注入用到的SQL

        1.access数据库

Microsoft Access 数据类型

 特点小结:

问题:

2.简单用到的SQL

二.注入的开始

1.老三套:单引号 and 1=1  and 1=2

2.判断字段 order by

 3.字段爆出来了就使用联合查询吧

4.显示位出来了

 


一.关于Access数据库和简单注入用到的SQL

        1.access数据库

                Microsoft Office Access是由微软发布的关系数据库管理系统,也就是说在我们的

 Office全家桶就能找到

 

Microsoft Access 数据类型

数据类型描述存储
Text用于文本或文本与数字的组合。最多 255 个字符。
MemoMemo 用于更大数量的文本。最多存储 65,536 个字符。注释:无法对 memo 字段进行排序。不过它们是可搜索的。
Byte允许 0 到 255 的数字。1 字节
Integer允许介于 -32,768 与 32,767 之间的全部数字。2 字节
Long允许介于 -2,147,483,648 与 2,147,483,647 之间的全部数字。4 字节
Single单精度浮点。处理大多数小数。4 字节
Double双精度浮点。处理大多数小数。8 字节
Currency用于货币。支持 15 位的元,外加 4 位小数。提示:您可以选择使用哪个国家的货币。8 字节
AutoNumberAutoNumber 字段自动为每条记录分配数字,通常从 1 开始。4 字节
Date/Time用于日期和时间8 字节
Yes/No逻辑字段,可以显示为 Yes/No、True/False 或 On/Off。在代码中,使用常量 True 和 False (等价于 1 和 0)。注释:Yes/No 字段中不允许 Null 值1 比特
Ole Object可以存储图片、音频、视频或其他 BLOBs(Binary Large OBjects)。最多 1GB
Hyperlink包含指向其他文件的链接,包括网页。
Lookup Wizard允许您创建一个可从下拉列表中进行选择的选项列表。4 字节

 特点小结:

1.不清楚表名无法查询:猜解表名或偏移注入

上图存储表名的表无法查询利用,要权限和设置

问题:

如何用SQL语句查看access数据库版本号?

select version(); ----mysql

select  @@version; -----sqlserve

select * from v$version; ----oracle

 2.为什么access里的MSysNameMap中只有数据表的表名,有无方法可以利用??

2.简单用到的SQL

1.select 

SELECT 语句用于从数据库中选取数据。

2.where

WHERE 子句用于提取那些满足指定条件的记录。

3.like

Like模糊查询

  • % 表示多个字值,_ 下划线表示一个字符;
  • M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
  • %M% : 表示查询包含M的所有内容。
  • %M_ : 表示查询以M在倒数第二位的所有内容。

4.union

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同

二.注入的开始

1.老三套:单引号 and 1=1  and 1=2

单引号'开局

2.判断字段 order by

 3.字段爆出来了就使用联合查询吧

4.显示位出来了

列名获取小技巧

找到后台然后看接口ID大概率是列名,或者猜?

 常见表名:admin|user|Account|login等等

 得到的值是加密过的(md5分16位和32位)

MD5解码得密码:*******

进后台然后被兄弟们弹得满脸XSS.........

更多推荐

Access数据库中的SQL注入(无waf)