2

我一直试图打破这个几个小时,但没有成功......我现在非常绝望:(

我正在为一家公司做渗透测试,我需要绕过这个框架杀手 JS:

<script type="text/javascript">/* <![CDATA[ */
if (top != self) {
    try {
        if (parent != top) {
            throw 1;
        }
        var disallowed = ['XXXXXXX.com'];
        var href = top.location.href.toLowerCase();
        for (var i = 0; i < disallowed.length; i++) {
            if (href.indexOf(disallowed[i]) >= 0) {
                throw 1;
            }
        }
    } catch (e) {
        try {
            window.document.getElementsByTagName('head')[0].innerHTML = '';
        } catch (e) { /* IE */
            var htmlEl = document.getElementsByTagName('html')[0];
            htmlEl.removeChild(document.getElementsByTagName('head')[0]);
            var el = document.createElement('head');
            htmlEl.appendChild(el);
        }
        window.document.body.innerHTML = '<a href="#" onclick="top.location.href=window.location.href" style="text-decoration:none;"><img src="http://www.XXXXXXX.com/img/XXXXXX.gif" style="border:0px;" /><br />Go to XXXXXXX.com</a>';
    }
}

/* ]]> */</script>

非常感谢!

4

1 回答 1

1

使用以下方法之一:

如果主体元素的节点文档的浏览上下文是嵌套浏览上下文,并且该嵌套浏览上下文的浏览上下文容器是框架或 iframe 元素,则主体元素的容器框架元素是该框架或 iframe 元素。否则,没有容器框架元素。

上述要求意味着一个页面可以使用例如 iframe 来更改另一个页面(包括来自另一个来源的页面)的边距。这可能是一种安全风险,因为在某些情况下,它可能允许攻击造成页面呈现不符合作者预期的情况,可能是出于网络钓鱼或以其他方式误导用户的目的。

参考

于 2012-12-29T07:09:09.947 回答