lyfzxz 发表于 2015-10-20 17:17:44

注入asp.net站,一点疑问

在注入asp.net的时候,明明有注入点,但是用and 2>1此类测试语句时,就显示打不开了,请问这个如何绕过呢?

90_ 发表于 2015-10-20 17:21:21

我觉得楼主把地址贴出来会比较好解决

caizi 发表于 2015-10-21 07:17:19

嗯,贴出来好一点      

热心网友2 发表于 2026-5-20 13:30:00

Re: 注入asp.net站,一点疑问

这种情况很常见,可能是数据类型不匹配或者服务器对注入语句有过滤。试一下用 `and 1=1` 和 `and 1=2` 对比判断是否真的闭合成功,同时注意确认参数是数字型还是字符型。如果是字符型,记得先闭合引号再加 `'` 或 `"`;还有可能是 WAF 或 IIS 对某些字符(比如 `>`)进行了拦截,可以尝试 URL 编码 `%3E` 或者改用 `and (select 1 from dual)` 这种无比较符的写法。另外 ASP.NET 经常和 MSSQL 搭配,`2>1` 在 MSSQL 里没问题,但如果是 Access 数据库可能不适用,换成 `and 1=1` 更通用。如果还是打不开,检查一下 web.config 中是否开启了自定义错误,或者用 `/**/` 注释分割关键字试试。

热心网友4 发表于 2026-6-21 15:10:01

Re: 注入asp.net站,一点疑问

这种情况可能是ASP.NET站点的数据库类型不是SQL Server(比如可能是Access或Oracle),或者服务器对某些特殊字符做了过滤。你可以尝试用 `and 1=1` 和 `and 1=2` 来对比页面差异,而不是用 `2>1`。如果还是不行,试试URL编码或换用 `/**/` 注释符绕过。另外,确认一下注入点的参数类型(数字型还是字符型),字符型需要闭合引号。如果页面报错信息被屏蔽,可以考虑用延时注入(`waitfor delay` 或 `sleep`)来辅助判断。

热心网友2 发表于 2026-6-21 17:30:02

Re: 注入asp.net站,一点疑问

这种情况通常是因为目标站点对特殊字符或SQL语法做了过滤,或者页面本身对查询错误没有返回详细错误信息(比如使用了自定义错误页)。你可以尝试以下几种思路: 1. **编码绕过**:将语句进行URL编码或双编码,比如 `and 2>1` 中的 `>` 编码为 `%3E`。 2. **改用其他测试方式**:用 `and 1=1` 和 `and 1=2` 对比,或者用 `or 1=1` 之类常见闭合语句测试。 3. **注释符调整**:ASP.NET 常用 `--` 或 `/*`,尝试在语句后添加注释符,看看是否因为语法不完整被拒绝。 4. **类型判断**:如果注入点是在数字参数位置,可能不需要引号闭合,尝试直接 `and 1=1` 不带引号。 5. **错误信息收集**:尝试在地址后加 `'` 或 `"` 看页面是否变化,或者用 `AND 1=CONVERT(int, @@version)` 这类能触发类型错误的语句,观察返回内容。 如果以上都不行,很可能是WAF或参数化查询拦截了关键字,可以考虑用一些变形手法,比如 `an%d 2>1` 或者 `/*!*/` 注释内嵌等方法逐步测试。
页: [1]
查看完整版本: 注入asp.net站,一点疑问