SQL注入漏洞检测对于字符串型的判断方法

我看网上有两种,能不能详细解释一下二者是什么关系,每个是什么意思?第一种:当输入的参数YY为字符串时,通常abc.asp中SQL语句原貌大致如下:
select * from 表名 where 字段='YY',所以可以用以下步骤测试SQL注入是否存在。
①xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了
select * from 表名 where 字段=YY’,abc.asp运行异常;
②xxx.xxx.xxx/abc.asp?p=YY'and'1'='1,abc.asp运行正常,而且与xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
③xxx.xxx.xxx/abc.asp?p=YY'and'1'='2, abc.asp运行异常;
如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。” 第二种:当输入的参数YY为字符串时,通常abc.asp中SQL语句原貌大致如下:
select * from 表名 where 字段='YY',所以可以用以下步骤测试SQL注入是否存在。
①xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了
select * from 表名 where 字段=YY’,abc.asp运行异常;
②xxx.xxx.xxx/abc.asp?p=YY&nb ... 39;1'='1', abc.asp运行正常,而且与xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
③xxx.xxx.xxx/abc.asp?p=YY&nb ... 39;1'='2', abc.asp运行异常;
如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。”

你说的这两种是一样的,就看第一种就行。我给你逐步解释一下

    第一步在url后面添加了‘后sql语句可以正常运行说明asp代码没有设置屏蔽’的机制;

    第二步在url最后添加了'and'1'='1后select语句就编程了

    select * from 表名 where 字段='YY'and'1'='1'

    如果这样也能正常运行则证明asp代码没有屏蔽条件插入的机制;

    第二步和第一步其实没有本质的区别,只是进一步确认;

    第三部url后面追加的编程了1=2,同第二部一个原理,只不过这次测试的是asp代码没有屏蔽掉数据库报错信息,而黑客可以通过这些信息得到很多系统信息以方便下一步的动作。

综上三步,当然可以知道这里可以作为入住点。LZ应该能明白了吧

追问

判断方法里面第一步不是会运行异常吗?这是说明有屏蔽'的机制吗?这和第二步不矛盾吗?

追答

打错了一个字。。纠正一下,第一步是异常。
是没有屏蔽啊,你想啊,有的话它就不报错了,就不会异常了。
而第二部怎么会矛盾呢,正式因为它没有设置屏蔽机制所以第二步才有可能正常运行啊。如果有屏蔽机制的话第二步也就异常了,因为第一步加一个'后select语句就语法错误了,而第二步加了and后语法是正确的。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网