一:联合查询
1.判断是否存在漏洞
利用1 and 1=1和1 and 1=2来判断,或者加减号,单引号,能引起页面报错则可能存在漏洞
2.判断列数
利用order by判断
接下来判断回显位,利用union select,在MySQL数据库中,可以直接使用union select,但access数据库需要用from加一个表名,而access没有数据库的概念,且没有database( )函数,所有表都在同一个数据库下,所以我们不需要去判断数据库名,但需要我们去猜测有哪些表,以下是常见的一些表名
admin,a_admin,x_admin,m_admin,adminuser,admin_user,article_admin,administrator,manage,manager,member,memberlist,user,users,Manage_User,user_info,admin_userinfo,UserGroups,user_list,login,Friend,zl,movie,news,password,clubconfig,config,company,book,art,dv_admin,userinfo
由此可知本数据库中没有user表
由此可知本数据库存在admin表,且回显位为2,3,8,9,10这五位
倘若不确定是否是回显位,改变相应的数值,倘若有变化,既是回显位
3.判断列名
将2,3位改变为我们猜测的列名,以下为常见的列名
username,adminusername,admin_username,adminname,admin_name,admin,adminuser,admin_user,usrname,usr_name,user_admin,password,admin_password,administrator,administrators,adminpassword,adminpwd,admin_pwd,adminpass,admin_pass,usrpass,usr_pass,user,name,pass,userpass,user_pass,userpassword,user_password,pwd,userpwd,user_pwd,useradmin,pword,p_word,pass-wd,yonghu,id,uid,userid,user_id,adminid,admin_id,login_name
由此我们成功的得到了账号和密码,账号admin,密码bfpms,但由于密码存在加密,所以无法直接登录,需要转义后得到真实密码,为admin
接着我们可以尝试登录后台,在网址后加入admin/admin.asp
输入admin,admin即可成功登录
二:逐字猜解
1. 判断表名
Exists意为存在,倘若数据库存在admin这个表,那么便不会报错,若不存在,例如输入user,那么便会报错
2.判断列名
将*改为你所猜测的列名,若正确则不会报错
3.获取数据
(1)判断记录长度
在初次判断时,我们可以使用大于小于号来缩小范围,最后再使用等号
(2)获取记录内容
asc是ASCII的缩写,mid则相当于substr,使用burp爆破后可知内容为admin