和DOM一起的日子:检测与预防DOM跨站脚本攻击

from 《Riding out DOMsday: Toward Detecting and Preventing DOM Cross-Site Scripting》

摘要:跨站脚本攻击(XSS)是一种经常出现在web应用中的计算机安全漏洞。当复杂的JavaScript应用程序变得越来越普及,文档对象模型跨站脚本攻击(DOM XSS :一种跨站脚本攻击,这个安全隐患位于客户端JavaScript,而不是服务端代码),正变得更加常见。作为这项工作的第一个成果,我们使用嵌入在JavaScript引擎中的带有污染跟踪的浏览器,对DOM XSS对web的影响进行了实证评估。在先前的一项针对热门网站的研究中使用的方法的基础上,我们收集了一个关于潜在DOM XSS漏洞的当前数据集。我们改进了用于确认XSS漏洞的方法,使用这种改进的方法,我们发现同一数据集上的漏洞比以前的方法多83%。作为第二个成果,我们确定了产生DOM XSS漏洞的原因,并讨论了如何防止DOM XSS漏洞。我们发现的一个例子是,定制的HTML模板设计——一种可以防止DOM XSS vulability类似于参数化sql的设计模式——在实践中可能存在bug,从而允许DOM XSS攻击。作为我们的第三个成果,我们评估了三种静态分析工具的错误率,以检测使用动态分析技术发现的DOM XSS漏洞。我们发现静态分析工具可以遗漏90%的动态分析发现的错误,尽管有些工具可能有很少的误报,但同时可以发现使用动态分析没有发现的漏洞。

介绍

 

 

 

 

 

 

 

 

 


XSS:是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

shellcode:Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。另外,Shellcode一般是作为数据发送给受攻击服务器的。 Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起,毕竟Shellcode只对没有打补丁的主机有用武之地。网络上数以万计带着漏洞顽强运行着的服务器给hacker和Vxer丰盛的晚餐。漏洞利用中最关键的是Shellcode的编写。由于漏洞发现者在漏洞发现之初并不会给出完整Shellcode,因此掌握Shellcode编写技术就显得尤为重要。

posted @ 2018-10-22 17:12  巨兽~墨菲特  阅读(326)  评论(0编辑  收藏  举报