Cross-site scripting (XSS) flaws are a class of security flaws that permit the injection of malicious code into a web application. In simple situations, these flaws can be caused by missing input sanitizations. Sometimes, however, all application inputs are sanitized, but the sanitizations are not appropriate for the browser contexts of the sanitized values. Using an incorrect sanitizer can make the application look protected, when it is in fact vulnerable as if no sanitization was used, creating a context-sensitive XSS flaw. To discover context-sensitive XSS flaws, we introduce DjangoChecker. DjangoChecker combines extended dynamic taint tracking with a model browser for context analysis. We demonstrate the practical application of DjangoChecker on eight mature web applications based on Django, discovering previously unknown flaws in seven of the eight applications, including highly severe flaws that allow arbitrary JavaScript execution in the seven flawed applications.
翻译:跨地点脚本缺陷( XSS) 是安全缺陷的一类, 允许将恶意代码输入到网络应用程序中。 在简单的情况下, 这些缺陷可能由缺失的输入清扫系统造成。 但是, 有时, 所有应用程序输入都是清洁的, 但净化系统并不适合于净化值的浏览器背景。 使用不正确的洗涤器可以保护应用程序, 而当应用程序实际上很脆弱, 好像没有使用清扫系统, 造成对上下文敏感的 XSS缺陷时。 为了发现环境敏感的 XSS缺陷, 我们引入了 DjangoCryer。 DjangoCrecker 将扩展的动态污点跟踪与用于背景分析的模型浏览器结合起来。 我们展示了Django Checker对基于Django的八个成熟网络应用程序的实际应用, 发现了八个应用程序中的七个先前未知的缺陷, 包括非常严重的缺陷, 允许在七个有缺陷的应用程序中任意执行 JavaScript 。