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注入漏洞。”
2026年09月19日 17:00
有1个网友回答
网友(1):

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

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

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

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

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

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

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

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