XSS漏洞簡介
XSS注入漏洞又稱為"跨站腳本攻擊(Cross Site Scripting)",為了不和層疊樣式表(Cascading Style Sheets,CSS)混淆,所以將跨站腳本攻擊縮寫為XSS,XSS注入攻擊的原理其實和SQL注入攻擊的原理很相似,攻擊者將惡意的Script代碼插入到網頁中,當正常用戶瀏覽該頁面時,被嵌入的惡意Script代碼就會被執行,從而達到惡意攻擊正常用戶的目的,
XSS分類
跨站腳本注入漏洞是由于WEB服務器讀取了用戶可控資料輸出到HTML頁面的程序中沒有進行安全處理導致的,用戶可控資料包括url、引數、HTTP頭部欄位(cookie、referer、HOST等)、HTTP請求正文等,
(1)反射型XSS:攻擊者輸入可控資料到HTML頁面中(通常是url),所以輸入的資料沒有被存盤,只能在單次請求中生效,
(2)存盤型XSS:攻擊者輸入可控資料到HTML頁面(通常是POST表單:評論、留言板、登錄框等),所以輸入的資料會被存盤到資料庫中,由于資料經過存盤,可以持續被讀取出來,攻擊的次數比反射型XSS多,
(3)DOM-XSS:攻擊者可控資料通過JavaScript和DOM技術輸出到HTML中,其實是一種特殊型別的反射型XSS,基于DOM檔案物件模型的一種漏洞,
XSS危害
(1)流量劫持,利用木馬修改瀏覽器不停的彈出新的視窗強制性的讓用戶訪問指定的網站,為指定網站增加流量
(2)獲取用戶cookie資訊,盜取賬號(普通用戶、管理員等賬號)
(3)篡改、洗掉頁面資訊(釣魚操作)
(4)配合CSRF攻擊,實施進一步的攻擊,控制被害人的電腦訪問其他網站
JavaScript代碼
JavaScript代碼是客戶端腳本語言,是瀏覽器的一部分,用來給HTML網頁增加動態功能,
為什么要說一下JavaScript代碼呢,在XSS注入攻擊中所利用的Script代碼就是它的一個標簽,
所以簡單介紹一下其中我們可以利用的語法和標簽,
方法;常用來網頁向檔案中輸出內容,



XSS漏洞利用
接下來了解了XSS注入攻擊的原理以及利用的代碼后,就可以嘗試去驗證網站是否存在XSS注入漏洞
案例一:利用XSS+CSRF增加網站管理員
該網站由于在對管理員帳號編輯的地方,進行密碼修改時沒有進行2次校驗或確認,存在CSRF漏洞,使用XSS腳本對該CSRF漏洞進行利用
通過注冊新用戶或者暴力破解等方式登入網站后臺,權限不為admin,用于審計網站后臺結構,將script代碼在留言板發送給管理員,管理員查看留言板之后服務器會跳轉界面執行指令

代碼部分為
xmlhttp.open(打開管理后臺增加管理員的url)
xmlhttp.send(然后傳遞value引數進去,增加passwd和name的值)
管理員界面顯示效果如下,增加的留言內容被存盤到資料庫,并且當管理員查看留言板時攻擊生效

嘗試利用新的管理員賬號密碼(su/12345)登入后臺,下圖為添加成功的su管理員

案例二:CMS管理后臺偽造釣魚網站
通過開發者工具查看源代碼,發現name=“username”,說明是以雙引號閉合為標簽,并且在該網頁有“忘記密碼”模塊,

輸入"><"后出現彈窗,說明存在XSS注入漏洞
XSS注入攻擊原理:網頁用戶名post表單原始碼引數為name=“username”,我們需要構造一個閉合標簽"><",讓代碼能夠實作,

點擊忘記密碼模塊進入wjmm.php,我們將構造一個XSS注入攻擊,讓正常用戶訪問該頁面的時候跳轉到我們偽造的忘記密碼頁面,修改管理員的聯系電話,

首先我們要自己編譯一個wjmm.php網頁,將其放在我們的服務器上面,代碼如下

在管理系統的登入界面輸入123"/><a,即可進行XSS漏洞注入;網頁跳轉到新的url界面,

點擊忘記密碼模塊,跳轉到本機服務器頁面,并且管理員聯系電話已被修改,可以做流量劫持,或做為一個釣魚網站,

案例三:網頁留言板獲取cookie
在一個文章管理系統的留言板,存在存盤型XSS注入漏洞,當管理員打開留言板資訊查看的時候,觸發其中的XSS代碼,攻擊者獲取管理員cookie資訊,可以用來做固定session會話攻擊登陸后臺,
檔案管理系統的留言板下輸入script的代碼資訊,當管理員查看留言板資訊的時候將造成cookie的獲取

JavaScript代碼
其中的 var url為本機服務器的ip,訪問該url后,記錄cookie資訊,然后通過post請求傳送cookie資訊,cookie1.php為本機創建的php檔案,用來記錄cookie資訊,

cookie1.php代碼,用于接收傳進來的$_POST[‘cookie’]值,然后將其記錄保存在cookie.txt檔案夾中

當管理員登錄后,打開留言板模塊,跳出彈窗獲取username,userid,phpsessid資訊

查看cookie.txt檔案,document.cookie保存的cookie資訊將存入該文本中

有了管理員的各種session值之后,可以通過插件cookie manager添加新的cookie等資訊,在沒有賬號密碼的情況下登錄管理員界面,


總結
作為OWASP TOP10中的漏洞之一,XSS注入漏洞在WEB安全中還是有很多案例存在,
安全建議
建站人員應該提前做好防護措施,可以在服務端對用戶可控資料進行過濾和編碼操作,如將所有on事件,script等關鍵字進行過濾,將所有<,>,”,’,=等特殊符號進行物體化編碼或百分號編碼便可以修復,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389067.html
標籤:其他
