我在多个 Web 应用程序中遇到了以下 JS 代码。我认为这个代码片段受欢迎的原因是这个公认的答案 SO。开发人员似乎在使用这段代码很多切换菜单选项卡:
var url = document.location.toString();
if (url.match('#')) {
$('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
}
它基本上在没有任何卫生条件的情况下读取document.location并传递 a 之后的任何内容。#$()
甚至 Burp Suite 的 Active Scanner 也将其报告为 True Positive。
我试图利用它,但这对我来说似乎是一个误报。我的假设是,由于 JS 将 URL 转换为字符串,因此任何有效负载(包括特殊字符)都将被视为字符串。
在这里发布这个只是为了确定你们是否可以想到任何其他方法来利用它来导致基于 DOM 的 XSS?
