Access数据库--偏移注入

前言

由于我的学习进度到了偏移注入,所以在网上也查找相关资料来查漏补缺填补我的不足,但是我发现我与网上的博主注入思路相差不大,区别在于他们大都使用了SQL 内连接函数 inner join帮助输出结果,下面是我的方法!
对于Access数据库我上一篇的Access–cookie注入已经介绍过,偏移注入与cookie注入的方法和使用的函数部分相同。但是偏移注入的使用场景比它更加特殊
偏移注入只需要爆破出任一表名,不需要知道任意字段名即可完成注入。

1.原理

就是将目标表进行(多级)内连接,通过联合查询和已知目标字段名的微调,将我们想要知道的字段值在已经确定的显示位上暴露出来。

2.注入步骤

a.判断是否存在注入
与SQL注入相同在控制台输入

document.cookie="id="+escope("111 and 1=1") //页面正常
document.cookie="id="+escope("111 and 1=2") //页面报错

说明存在注入
b.判断字段数

document.cookie="id="+escope("111 order by 1") //逐个递增字段数,直至页面报错,则说明当前测试的数字即为字段总数

c.爆破库名
配合exists(“子查询”)爆破库名以及表名

document.cookie="id="+escope("111 and 1=2 exists(select *from aaaa)")

抓包后修改参数爆破aaaa,前提去掉URL中的GET传参,原因与具体爆破步骤查看前言提到的cookie注入篇,接着利用相同办法爆破得到表名

d.查看显错位

document.cookie="id="+escope("111 and 1=2 union select 1,2,3,4,5,6 from 表名")

尽量将查询数字写的有辨识度些,因为除了页面上显示出来的显错位,可能在控制台的报错信息中或者是源码中都有可能存在隐藏显错位

e.查询结果
偏移注入通常是解决一些注入不出来列表的时候,这时候想要知道内容就要借助admin.*的不断移动查找内容!
admin.*的作用:代表查找admin表下的所有字段
在这里插入图片描述

在这里插入图片描述
从图可以看出a666.*代表了a666里的所有字段(id和num),而且我们不需要知道字段名就可以同样查看内容,如果你只写 * 数据库是不知道你查询的是哪个表!

decoment.cookie="id="+escope("111 and 1=2 union select 1,admin.*,3,4,5,6 from 表名")//数据库内存在的任意表名即可

逐个删减字段数来判断要查询的表内存在几个字段,直到减到页面停止报错并回显内容时,这里引出一个编移注入的条件:注入点的表中字段数要足够长,要比你查询的表的字段要多!不然没有办法查询。
假如像上面注入点有6个字段,显错位为2,4,并且a666表只有2个字段,在我们不知道字段名的情况下即可查询到内容,
在这里插入图片描述
我们可以通过不断移动.*的位置来查看a666表中的所有字段内容。

3.总结

a.偏移注入不只是针对Access数据库
b.accese数据库时,偏移注入用top和desc组合,遍历数据,且!=不能使用
c.偏移注入可以很大程度上解决猜不到字段的问题,或者是碰到非常奇葩的字段名时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值