当前位置:
首页 > 笔记 > ACCESS数据库的注入

ACCESS数据库的注入

ACCESS数据库的注入与MSSQL不同,要得到表名,字段,以及字段的内容不能用MSSQL"暴"的方法直接得

到,ACCESS只能用猜解出表名和字段,然后再猜解出字段的长度,最后把字段的内容从第一位到第N位一个个猜

解出来,采用的猜解方法类似玩一个游戏猜大小,比如一个数字,猜是否大于100如果不是,刚猜是否大于1,如果

为正确,那么再猜是否大于50,如

果正确,则再猜是否大于80,一直这样猜下去,这种猜解字段内容的方法,被称为"折半猜解法".

第一步,确定注入点:

用' 或者1=1 1=2检测

第二步,猜解表名

用 and exists (select * from [admin]) 检测是否存在ADMIN表,ADMIN这个表名可以替换成其它的表名

进行猜解,如果存在该表名返回结果为正常,如果不存在则返回为出错,

第三步,猜解某表名中存在的字段

and exists (select top 1 [name] from [admin]) 前面[name]方括号中的NAME可以换成你要查询的

字段名,后面ADMIN则是要查询的表名,这一句的意思就是查询在ADMIN表中是否存在NAME字段,和上面的一

样,如果存在返回页面为正常页,如果不存在,则是出错页面

第四步.猜解字段的长段

and (select top 1 len(username) from Admin)>0 LEN参数提取字段长度()内的USERNAME是字段

名,>0可以换成>1.>2直到猜中字段的长度

第五步,折半法猜出--重为关键的一环

and (select top 1 asc(mid(username,N,1)) from Admin)>0 猜解第N位的ASCII码 >0取值从负数到

正数都有可能,当然常见的密码都是数字加字母的组和,他们的ASCII值在0-128之间,将值替换为这之间的值,

如果正确,则返回正常页面,如果不是责返回出错,

将N分别替换为1 2 3 4... 反复猜解即可得出字段每一个位数的值而得到密码

ACCESS数据库的注入:等您坐沙发呢!

发表评论

表情
还能输入210个字