Javascript ASP.NET webforms操作是否存在xss威胁?
我目前正在锁定一个报告网站XSS漏洞的应用程序 该网站是为ASP.NET 2.0构建的,但已升级到ASP.NET 4.0库中的功能 我已经用安全工具扫描了这个网站,并且有一些页面报告说受到XSS(反射)攻击 我注意到,在任何网页上似乎都可以针对QueryString参数包含JavaScript,因为ASP.NET会自动将其附加到页面的表单操作中 现在,如果ValidateResponse处于启用状态,并且URL中的JavaScript是basic,那么页面将如预期的那样出错。 如果对JavaScript进行了编码,那么ValidateResponse似乎会忽略它,从而导致安全测试应用程序在测试通过HTML时抛出错误 例如:Javascript ASP.NET webforms操作是否存在xss威胁?,javascript,asp.net,webforms,xss,antixsslibrary,Javascript,Asp.net,Webforms,Xss,Antixsslibrary,我目前正在锁定一个报告网站XSS漏洞的应用程序 该网站是为ASP.NET 2.0构建的,但已升级到ASP.NET 4.0库中的功能 我已经用安全工具扫描了这个网站,并且有一些页面报告说受到XSS(反射)攻击 我注意到,在任何网页上似乎都可以针对QueryString参数包含JavaScript,因为ASP.NET会自动将其附加到页面的表单操作中 现在,如果ValidateResponse处于启用状态,并且URL中的JavaScript是basic,那么页面将如预期的那样出错。 如果对JavaSc
The url /product.aspx?ProductGuid=1234
Case 1: /product.aspx?ProductGuid=<script>alert(1);</script>
In this case, ValidateResponse picks up the pieces, and errors for you.
Case 2: product.aspx?ProductGuid=%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E
In this case, ValidateResponse sees no issue.
The JavaScript is pushed through to the browser by ASP.NET itself, in the form's action.
url/product.aspx?ProductGuid=1234
案例1:/product.aspx?ProductGuid=alert(1);
在这种情况下,ValidateResponse将为您拾取片段和错误。
案例2:product.aspx?产品GUID=%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E
在这种情况下,ValidateResponse看不到任何问题。
在表单的操作中,JavaScript由ASP.NET本身推送到浏览器。
我理解误报的概念,也许.NET可以确保动作中的URL编码正确,但我不确定,因为我找不到任何确定的信息
这类问题是否为假阳性?
如果没有,如何正确地清理表单的操作
我甚至找不到有人问我这个问题,但在一些地方,我发现我的一般问题都没有答案
感谢所有人的帮助。您是否尝试过运行被确定为问题的安全应用程序的测试?访问/product.aspx时会发生什么情况?ProductGuid=%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E?我会在Firefox中检查这一点,并确保浏览器的XSS过滤器被禁用。如果攻击字符串反映在响应中并执行Javascript,则存在合法漏洞。MrWerbenjagermanjensen,谢谢。我已经在浏览器中运行了它,它确实反映在HTML响应中。然而,据我所知,它并没有执行。现在,这可能只是因为我没有100%正确的编码,但它不能给我令人信服的证据证明这是一个假阳性。事实上,ASP.NET将获取URL并将其放入表单的操作中。我无法控制这一切。但我不是唯一一个有这个问题的人。我对ASP.NET不熟悉。表单发布到与表单相同的URL,并且在获取表单时在URL中包含额外的URL参数,这是否会导致这些参数在表单的HTML中得到响应?例如,如果URL是
/product.aspx?param=val
,那么表单HTML将包括
?MrWerbenjagermanjensen,是的,就是这样。ASP.NET会自动将URL添加到表单操作中。在webforms中,每页只有一个表单,由MS管理。当创建页面时,URL就是操作,包括任何格式错误或恶意内容。