ASP经典页面冻结包含查询字符串的值“etc.com?v0=%25n”
问题描述:
我在IIS(Internet信息服务)上托管了一个页面。这是ASP经典。 托管窗口服务器2008年ASP经典页面冻结包含查询字符串的值“etc.com?v0=%25n”
<%
dim x
x = Trim(UCase(Request.QueryString("v0")))
if x= "" then
x="no value"
end if
response.write "<h1>Hello World "& x &"</h1>"
%>
尝试下面的地址,在Internet Explorer
输入地址:
"test/sample.asp?v0=%25ABC"
结果:
"Hello World %ABC"
输入:
"test/sample.asp"
结果:
"Hello World No Value"
输入地址:
"test/sample.asp?v0=%25123"
结果:
"Hello World %123"
输入地址:
"test/sample.asp?v0=%25n" or "test/sample.asp?v0=%25N"
结果:
Web browser stop working.
有IIS导致此症状中的任何设置?或任何其他原因?
的Add-On - 2015年2月11日
实际的编码是不是真的保密。但其时间太长,无法在这里发布。但实际情况是如下:
用户可以使用input box type text
搜索项,然后onblur
输入转发到调用showmodaldialog.
与下面的示例的函数:
javascript
window.showModalDialog("search_item.asp?v0="+input)
的在发送前,输入为URL编码。 用户发现“%”符号实际上是通配符。 *不真的知道他们是如何发现的。
所以他们一直在使用它。但是,由于我们将网站迁移到了 新服务器。问题开始发生。
因此,我试图缩小冻结的原因,并发现价值发送导致的问题。
我不熟悉IIS。在设置IIS时,这可能是我的错误。
答
美好的一天,我终于找到造成冻结的原因。它由于杀毒软件! 防病毒软件将查询字符串识别为入侵,从而阻止IP。 默认为60分钟。不能附上图片,但细节如下
防病毒:卡巴斯基反病毒软件套件WKS和FS。
安全类型:网络攻击阻止程序。
网络攻击类型:Intrusion.Win.EasyAddressWebServer.format-string.exploit
目前正在寻找替代方案,以允许特定网络instrusion。
你能解释为什么你的查询字符串会有这个值,也许从发布页面发布代码?这听起来像一个问题,可以通过UrlEncode解决(参见这里的例子:http://stackoverflow.com/q/9579151/3915817),但很难确切知道你不需要这些字符的原因,以及为什么他们首先在你的网址中。 – KHeaney 2015-02-10 14:31:00
编辑过的帖子里有更多的样本,很抱歉被模糊。 新服务器是stil窗口服务器2008。改为新的硬件。来自IBM。 – WyHowe 2015-02-10 16:54:32
你在旧的设置上尝试过%25N吗?那里没有错误吗? – KHeaney 2015-02-10 17:25:40