跨站脚本(XSS)漏洞 (一)
跨站腳本(XSS)漏洞
跨站腳本漏洞概述
Cross-Site Scripting 簡稱為“CSS”,為避免與前端疊成樣式表的縮寫"CSS"沖突,故又稱XSS。一般XSS可以分為如下幾種常見類型:
1.反射性XSS;
2.存儲型XSS;
3.DOM型XSS;
XSS漏洞一直被評估為web漏洞中危害比較大的漏洞,在OWASP TOP10的排名中一直屬于前三的江湖地位。
XSS是一種發生在Web前端的漏洞,所以其危害的對象也主要是前端用戶。
形成XSS漏洞的主要原因是程序對輸入和輸出沒有做合適的處理,導致“精心構造”的字符輸出在前端時被瀏覽器當作有效代碼解析執行從而產生危害。
因此在XSS漏洞的防范上,一般會采用“對輸入進行過濾”和“輸出進行轉義”的方式進行處理:
輸入過濾:對輸入進行過濾,不允許可能導致XSS攻擊的字符輸入;
輸出轉義:根據輸出點的位置對輸出到前端的內容進行適當轉義;
XSS漏洞可以用來進行釣魚攻擊、前端js挖礦、用戶cookie獲取。甚至可以結合瀏覽器自身的漏洞對用戶主機進行遠程控制等。
跨站腳本漏洞概述-XSS(竊取cookie)攻擊流程
跨站腳本漏洞常見類型
危害:存儲型>反射型>DOM型
反射型
交互的數據一般不會被存在數據庫里面,一次性,所見即所得,一般出現在查詢類頁面等。
存儲型
交互的數據會被存在數據庫里面,永久性存儲,一般出現在留言板,注冊等頁面。造成持久性損害
DOM型
不與后臺服務器產生數據交互,是一種通過DOM操作前端代碼輸出的時候參生的問題,一次性也屬于 反射型。
XSS漏洞形成原因
跨站腳本漏洞測試流程
當我們去找一個目標站點上面是否存在xss漏洞的時候,我們一般會按照什么思路去進行xss漏洞的手動挖掘?
① 在目標站點上找到輸入點,比如查詢接口,留言板等;
②輸入一組“特殊字符(比如尖括號、單引號雙引號等)+唯一識別字符”,點擊提交后,查看返回的源碼,是否有做對應的處理;
③通過搜索定位到唯一字符,結合唯一字符前后語法確認是否可以構造執行js的條件(構造閉合);
④提交構造的腳本代碼(以及各種繞過姿勢),看是否可以成功執行,如果成功執行則說明存在XSS漏洞;
TIPS:
①一般查詢接口容易出現反射型XSS,留言板容易出現存儲型XSS;
②由于后臺可能存在過濾措施,構造的script可能會被過濾掉,而無法生效,或者環境限制了執行(瀏覽器);
③通過變化不同的script,嘗試繞過后臺過濾機制;
XSS實驗演示
實驗環境:
測試目標:pikachu–xss
測試工具:Firefox+瀏覽器開發者工具(Chrome安全措施比較嚴格)
從一個反射型的XSS(get)彈窗開始認識XSS漏洞
按照剛剛的思路,去查看一下頁面源代碼:
然后ctrl+F輸入6666,可以找到輸出點,可以看到’"<>6666被輸出在p標簽里面,也就意味 著,我們輸入的特殊字符又原封不動的輸出到p標簽,是不是意味著,我們在找個地方輸入一些正確的js代碼,它也會原封不動的返回回來呢?
當在輸入框輸不了那么長的字符,可以通過F12——》選擇元素進行修改
因為是反射型的xss,按照剛剛的邏輯,刷新過后源碼中的alert就沒了,不會彈窗。
反射型跨站腳本漏洞之get&post
GET方式的XSS漏洞更加容易被利用,一般利用的方式是將帶有跨站腳本的URL偽裝后發送給目標而POST方式由于是以表單方式提交,無法直接使用URL方式進行攻擊,如何利用?
GET和POST典型區別:
GET是以url方式提交數據;
POST是以表單方式在請求體里面提交。
存儲型xss和DOM型XSS的解析
存儲型XSS漏洞
存儲型XSS漏洞跟反射型形成的原因一樣,不同的是存儲型xss下攻擊者可以將腳本注入到后臺存儲起來,構成更加持久的危害。因此存儲型XSS也稱為“永久型”XSS。
存儲型XSS漏洞演示
輸入’"<>?&66666試試看
查看網頁源代碼
在留言板上輸入
每次刷新的時候都會彈出彈框,因為剛剛這個留言已經被存到數據庫里面了,每次去訪問這個頁面的時候,都會從數據庫里面把這個留言加載出來觸發js腳本的運行。
DOM型XSS
HTML DOM教程:https://www.w3school.com.cn/htmldom/index.asp
DOM型XSS漏洞演示
DOM是純前端的
通過構造閉合,去執行我們預期的代碼。
構造了一個payload:
#'onclick="alert(111)">
構造閉合
構造了一個payload:
#'onclick="alert(111)">
這其實跟反射型xss一樣,只需要把下面這段URL發送給需要攻擊的用戶,它只要打開這個鏈接,我們構造的js代碼就會被插入到用戶的頁面里面去
總結
以上是生活随笔為你收集整理的跨站脚本(XSS)漏洞 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pikachu皮卡丘靶机系统安装~
- 下一篇: Hadoop下水环境模拟集群运算模式