2015-10-20 79 views
4

我想从HTTP头注入的XSS攻击保护经典的ASP Web应用程序,并且无法找到停止在用户代理字符串中找到脚本的解决方案。经典的ASP - 防止HTTP头注入

下面是一个例子HTTP请求到Web应用程序:

 
HTTP Request 
GET /WebApp/Login.aspx HTTP/1.1 
Host: WebServer.Webapp.Com 
User‐Agent: Mozilla/5.0 (X11; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0**alert(1)** 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept‐Language: en‐US,en;q=0.5 
Accept‐Encoding: gzip, deflate 
Cookie: ASP.NET_SessionId=foobarID 
Connection: keep‐alive 

基本上我们正在试图做的是保持这种警惕脚本的用户代理字符串从加载页面时发射了什么。我一直在进行大量的研究,并且无法为这款旧应用找到太多帮助。 我们将validateRequest和EnableHeaderChecking设置为true,但此脚本仍然执行。任何帮助真的很感激。

+3

这是IIS问题还是因为您显示用户代理问题发生? –

+0

我不认为这是一个IIS问题,因为XSS通过输入字段发送到服务器被请求验证捕获。我欺骗用户代理字符串包含一些JavaScript,我想知道如何保持该脚本运行。 – Sage

+0

其实,你可能刚刚解决了这个问题......我们有一个隐藏的领域,我相信存储用户代理字段...让我试着去杀死那个,看看会发生什么。 – Sage

回答

3

问题来自用户代理字符串(带有恶意脚本)出于调试目的而呈现在底部页面上。如果您遇到此问题,请检查您是否不在页面上显示包含错误脚本的对象。

如果你是,记住要使用HTML编码来安全地呈现它。

感谢the_lotus和Lankymart的快速解答。