【安全測試】Web應用安全之XSS跨站指令碼攻擊漏洞
前言
以前都只是在各類文件中見到過XSS,也進行過相關的學習,但是都是一知半解,過了一段時間就忘了。
前幾天我們收到了了一份標題為《XX賬號暱稱引數中存在儲存XSS漏洞》的報告文件,來源是一個叫漏洞盒子的機構,看它的官方介紹,是一個網際網路安全測試眾測平臺。
第一次在實際工作中遇到相關的問題,所以決定再系統的學習一下,此篇為學習記錄。
XSS概念及分類
XSS 全稱(Cross Site Scripting),直譯過來就是跨站指令碼攻擊,是Web程式中最常見的漏洞。
有點類似於SQL注入,可以簡單理解為“HTML注入”,把使用者輸入的資料當做指令碼執行,進而達到想要的目的。而這種目的通常是惡意的,比如獲取使用者的Cookie,導航到惡意網站,攜帶木馬等。
XSS攻擊可以根據攻擊發生的實時性分為以下幾類:
反射型XSS(非永續性XSS)
簡單說可充當執行指令碼的惡意資料,由使用者從“外部”輸入,通過提交輸入的方式“嵌入”到網頁url中。
簡單舉例:
針對存在XSS攻擊的某個網頁輸入框中輸入“惡意資料”,並提交,通常,這類提交操作對應著一個get請求,當我們把這個請求傳送給其他使用者,並讓使用者在web瀏覽器中開啟請求,這時就會把惡意資料當作指令碼再次執行,比如傳送cookie等資訊到指定的郵箱等。
儲存型XSS(持久型XSS)
類似反射型XSS,不同的是,其“惡意資料”本身就是包含在網頁原始碼中、或者自動從伺服器內部讀取並“嵌入”網頁中。
簡單舉例:
黑客在某個論壇寫了一篇文章,並在文章中寫入了用會充當指令碼執行的資料,比如一段惡意javascript程式碼,這樣所有瀏覽該文章的使用者,都會自動在其瀏覽器中執行這段惡意程式碼。
非永續性XSS漏洞一般威脅的是使用者個體,持久型XSS所威脅的物件可能是是大量的使用者.
如何測試XSS漏洞
站在一個測試的角度,我們要怎麼來對XSS漏洞進行測試呢?
方法一:
檢視程式碼,查詢關鍵的變數, 客戶端將資料傳送給Web 服務端一般通過三種方式 Querystring, Form表單,以及cookie. 例如在ASP的程式中,通過Request物件獲取客戶端的變數
<% strUserCode = Request.QueryString(“code”); strUser = Request.Form(“USER”); strID = Request.Cookies(“ID”); %>
假如變數沒有經過htmlEncode處理, 那麼這個變數就存在一個XSS漏洞
方法二:
準備測試指令碼:
"/><script>alert(document.cookie)</script><!--
<script>alert(document.cookie)</script><!--
"onclick="alert(document.cookie)
在網頁中的Textbox或者其他能輸入資料的地方,輸入這些測試指令碼,看能不能彈出對話方塊,能彈出的話說明存在XSS漏洞
XSS漏洞修復
原則:不相信客戶輸入的資料
XSS之所以會發生, 是因為使用者輸入的資料變成了程式碼。所以我們需要對使用者輸入的資料進行HTML Encode處理。 將其中的"中括號"、“單引號”、“引號”之類的特殊字元進行編碼。
攻擊程式碼不一定在<script></script>
中,所以要做好以下措施:
將重要的cookie標記為http only, 這樣的話Javascript中的document.cookie語句就不能獲取到cookie了.
只允許使用者輸入我們期望的資料。
> 例如:年齡的textbox中,只允許使用者輸入數字。 而數字之外的字元都過濾掉。
對資料進行Html Encode 處理
過濾或移除特殊的Html標籤,
> 例如: <script>, <iframe> , < for <, > for >, " for
過濾JavaScript 事件的標籤。
> 例如 "onclick=", "onfocus" 等等。
處理建議
1、輸入過濾:在使用者輸入的引數進行過濾,過濾掉’<’,’>’等符號,或者script,input,onerror等標籤。
2、輸出過濾:將使用者輸入內容作為頁面內容的時候必須經過檢測與過濾。使用HTMLEncode將以下特殊字元進行轉碼
參考資料:
相關推薦
【安全測試】Web應用安全之XSS跨站指令碼攻擊漏洞相關
閱讀目錄 歡迎轉載,也請註明出處 :http://www.cnblogs.com/Detector/p/8811216.html 謝謝!前言 以前都只是在各類文件中見到過XSS,也進行過相關的學習,但是都是一知半解,過了一段時間就忘了。 前幾天我們收到了了一份標題為《XX賬號暱稱引數中存在儲存XSS漏洞
【安全測試】Web應用安全之XSS跨站指令碼攻擊漏洞
前言 以前都只是在各類文件中見到過XSS,也進行過相關的學習,但是都是一知半解,過了一段時間就忘了。 前幾天我們收到了了一份標題為《XX賬號暱稱引數中存在儲存XSS漏洞》的報告文件,來源是一個叫漏洞盒子的機構,看它的官方介紹,是一個網際網路安全測試眾測平臺。 第一次在實際工作中遇到相關的問題,所以決定再系統的
PHP漏洞全解(四)-xss跨站指令碼攻擊【轉】
轉自:https://www.cnblogs.com/pingliangren/p/5586977.html XSS(Cross Site Scripting),意為跨網站指令碼攻擊,為了和樣式表css(Cascading Style Sheet)區別,縮寫為XSS 跨站指令碼主
web攻防之跨站指令碼攻擊漏洞
摘要:XSS跨站指令碼攻擊一直都被認為是客戶端Web安全中最主流的攻擊方式。因為Web環境的複雜性以及XSS跨站指令碼攻擊的多變性,使得該型別攻擊很難徹底解決。那麼,XSS跨站指令碼攻擊具體攻擊行為是什麼,又該如何進行有效的防範呢?本文對此進行了有針對性的具體例項分析。
JAVA WEB中處理防SQL注入|防XSS跨站指令碼攻擊(咋個辦呢 zgbn)
JAVA WEB中處理防SQL注入|防XSS跨站指令碼 在java web專案中,必然會涉及到從客戶端向服務端提交資料,那麼由於服務端對資料的處理等動作,會因為字串拼接和使用的特殊性,存在一些漏洞被人利用。 這篇文章,主要介紹一下在java web專案中,程
八、【spring】web應用安全設計
> 內容 > - Spring Security > - 使用Servlet規範中的Filter保護Web應用 > - 基於資料庫和LDAP進行認證 > 關鍵詞 ## 8.1 理解Spring Security模組 > Spring Security:是為基於Spr
【J2EE十三個規範】Web應用層之JSP和Servlet
【學習概要】 本篇部落格開始將會開始總結J2EE十三個規範的內容,在學習完十三個規範之後,巨集觀梳理了一遍,將其進行歸類和聯絡,十三個規範是什麼是必須要知道的。下面我們就從Web應用層開始。
【讀書筆記】WEB應用:1、日誌配置
log4j.properties 使用 一.引數意義說明 輸出級別的種類 ERROR、WARN、INFO、DEBUG ERROR 為嚴重錯誤 主要是程式的錯誤 WARN 為一般警告,比如session丟失 INFO 為一般要顯示的資訊,比如登入登出 DEBUG 為程式的除錯資訊
web安全(1)-- XSS(跨站指令碼攻擊)
XSS攻擊,通常指黑客通過“html注入” 篡改了網頁,插入了惡意的指令碼,從而在使用者瀏覽網頁的時候,控制使用者瀏覽器的一種攻擊。其原理是攻擊者向有XSS漏洞的網站中輸入(傳入)一段惡意的HTML程式碼,當其它使用者瀏覽該網站時,這段HTML程式碼會自動執行,從而達到攻擊的目的。如,盜取使用者Co
《白帽子講Web安全》3-跨站指令碼攻擊(XSS)
第3章 跨站指令碼攻擊(XSS) 3.1 XSS簡介 Cross Site Script,跨站指令碼攻擊,簡稱XSS。 XSS攻擊,通常是指黑客通過“HTML注入”篡改了網頁,插入了惡意的指令碼,從而在客使用者瀏覽網頁時,控制使用者瀏覽器的一種攻擊。
【程式碼審計】EasySNS_V1.6 前臺XSS跨站指令碼漏洞分析
0x00 環境準備 EasySNS官網:http://www.imzaker.com/ 網站原始碼版本:EasySNS極簡社群V1.60 程式原始碼下載:http://es.imzaker.com/index.php/Topic/gview/id/92.html 預設後臺地址:http
【程式碼審計】YUNUCMS_v1.0.6 前臺反射型XSS跨站指令碼漏洞分析
0x00 環境準備 QYKCMS官網:http://www.yunucms.com 網站原始碼版本:YUNUCMSv1.0.6 程式原始碼下載:http://www.yunucms.com/Download/index.html 測試網站首頁: 0x01 程式碼分析
【XSS技巧拓展】————4、淺談跨站指令碼攻擊與防禦
跨站指令碼簡稱xss(cross-site scripting),利用方式主要是藉助網站本身設計不嚴謹,導致執行使用者提交的惡意js指令碼,對網站自身造成危害。xss漏洞是web滲透測試中最常見而又使用最靈活的一個漏洞,近期在拜讀了《白帽子講web安全》、《Web實戰篇》、《XSS跨站指令碼
DVWA之DOM XSS(DOM型跨站指令碼攻擊)
LOW 原始碼: <?php # No protections, anything goes ?> 從原始碼可以看出,這裡low級別的程式碼沒有任何的保護性措施! 頁面本意是叫我們選擇預設的語言,但是對default引數沒有進行任何的過濾 所以我們
張小白的滲透之路(四)——XSS跨站指令碼漏洞詳解
XSS簡介 XSS又叫CSS(Cross Site Script),即跨站指令碼攻擊。是指攻擊者在網頁中嵌入客戶端指令碼,通常是JavaScript編寫的惡意程式碼,當用戶使用瀏覽器瀏覽被嵌入惡意程式碼
【常見Web應用安全問題】---4、Directory traversal
控制 code 註冊 input site 硬盤管理 下載 num ron Web應用程序的安全性問題依其存在的形勢劃分,種類繁多,這裏不準備介紹所有的,只介紹常見的一些。 常見Web應用安全問題安全性問題的列表: 1、跨站腳本攻擊(CSS or
【03.Web端XSS安全測試】
XSS 全稱(Cross Site Scripting) 跨站指令碼攻擊, 是Web程式中最常見的漏洞。指攻擊者在網頁中嵌入客戶端指令碼(例如JavaScript), 當用戶瀏覽此網頁時,指令碼就會在使用者的瀏覽器上執行,從而達到攻擊者的目的. 比如獲取使用者
循序漸進學.Net Core Web Api開發系列【15】:應用安全
系列目錄 一、概述 本篇介紹Web系統的應用安全,主要涉及使用者的身份認證和訪問許可權問題。 大部分web應用習慣採用Session來儲存使用者認證資訊,對於WebApi而言,呼叫者不一定是Web瀏覽器,可能是Android、iOS客戶端,可能是微信小程式,也可能是客戶端程式等等,這些客戶端
循序漸進學.Net Core Web Api開發系列【16】:應用安全續-加密與解密
系列目錄 一、概述 應用安全除了使用者許可權認證外,還要考慮到資料安全,傳輸安全、系統漏洞等方面。本篇文章重點討論資料儲存安全和傳輸安全,主要技術手段就是加密和解密。 二、基本概念 資訊在傳輸和儲存的過程中有洩密的風險,加密的目的就是解決這些風險。 1、資訊儲存在資料庫中,如果資料庫
【專項測試】京東“安全測試”
&nb