不靠任何工具全手动教你入侵指定网站网站安全 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    先申明下这方法只对ACCESS数据库的网站有效

    关于ACCESS注入的基本常识:

    第一、ACCESS数据库注入与MySQL方法不同,它的用户列表名,密码字段,以及字段的内容不能用MySQL“暴”的方法来取得,

不靠任何工具全手动教你入侵指定网站网站安全

    第二、ACCESS只能用“猜”的方法来得到表名和字段,然后再猜解出字段的长度,最后把字段的第一位到第N位分别猜出来。

    比如说,有一个人心里想着一个数字,另一个人要猜出这个人心里想的是什么数字,所以如果要百分之百、系统性的猜准, 就要有一定的提示。比如说,那个人问,这个数字是否大于100,如果被问的那个人说“不”,那么可以确定,这个数字不 大于100,继续问,是否小于1,如果被问的那个人仍然说“不”,那么就可以确定这个数字是一个正数,并且在1-100之间。继续问下去,是否大于60,是否小于90……,这样一直问下去,最后一定可以得到一个准确的答案。这种猜法被称为“折半猜解法”。

    知道ACCESS数据库注入的一些基本规律,就可以通过一些相关语法来进行手动注入了。

    第一步:确定注入点

    用“ and 1=1”或者“ and 1=2”来确认。注意:and两边各有一处空格。

    如果检测过后,返回错误信息,那么就证明这个网站有注入漏洞。

    第二步:猜解表名

    用:and exists (select * from [admin])

    检测是否存在admin表,admin这个表名可以替换成其它的表名进行猜解,如果存在该表名返回页面结果为正常,如果不存在则返回为出错,

电脑资料

不靠任何工具全手动教你入侵指定网站网站安全》(https://www.unjs.com)。

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

    语法:and exists (select top 1 [name] from [admin])

    前面[name]大括号中的name可以换成你要查询的字段名,后面admin则是要查询的表名,这一句的意思就是查询在admin表中是否存在name字段,和上述一样,如果存在返回页面为正常,如果不存在,则返回出错页面。比如说你要查密码字段名,则要把[name]改成pass或者password(可以通过尝试访问界面来确认是否存在该字段)。

    第四步:猜解字段的长度

    语法:and (select top 1 len(username) from Admin)>0

    len参数提取字段长度()内的username是字段名,>0可以换成>1、>2直到猜中。继续我们以上的叙述,刚才找的是密码字段,所以可以把(username)(记住username是由小括号括住的)改成password。

    第五步:折半法猜出字段--最关键的一环

    语法:and (select top 1 asc(mid(username,N,1)) from Admin)>0    猜解第N位的ASCII码>0取值从负数到正数都有可能,当然常见的 密码都是数字加字母的组和,它们的ASCII值在0-128之间,将值替换为这之间的值,如果正确,则返回正常页面,如果不是责返回出错,将N分别替换为1、2、3、4……反复猜解即可得出字段每一个位数的值而得到密码,参数N为字段的位数,如果是(mid(username,1,1)),则查找username字段中的第一位,依此类推。整个语句的最右边“>0”,数字0表示的是ASCII码,并不是真正的字段位数相应的字符。

    还是一样,我们继续上述结果,可以把username改为password。

   

最新文章