2012-02-19 39 views
1

我一直在試圖打破現在這個了幾個小時,但沒有成功......我現在很失望:(猛擊一個艱難的FRAME殺手

我做滲透測試的公司和我需要繞過該框架殺手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> 

非常感謝以下的

+3

兄弟,你需要縮進的代碼。我不能讀 – 2012-02-19 13:38:44

+0

哦對不起...我認爲它會自動縮進。 我現在看到波蒂爲我做了。 謝謝! – 2012-02-19 13:48:35

+1

他們使用不允許的列表而不是允許的列表?這看起來不太安全。 (您是否有權發佈此內容?滲透測試通常不包括在網上分享代碼) – 2012-03-04 15:06:19

回答

1

使用一個:

如果身體元素的節點文檔的瀏覽環境是一個嵌套的瀏覽上下文,即嵌套瀏覽的瀏覽器上下文容器上下文是一個框架或iframe元素,則body元素的容器框架元素是該框架或iframe元素。否則,不存在容器框架元素。

上述要求意味着頁面可以使用iframe來更改另一個頁面(包括另一個來源的頁面)的頁邊距。這可能是一種安全風險,因爲它可能在某些情況下允許攻擊來設計頁面的呈現方式不是作者的意圖,可能是出於網絡釣魚或誤導用戶的目的。

參考

+0

上述X-Frame-Options被公認爲防止點擊劫持企圖。請在https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet查看此選項的限制。幾乎所有當前版本的瀏覽器都支持此選項。這是你最好的選擇。 – 2014-02-09 06:54:03