⑤XSS構造技巧
i) 利用字符編碼:根據html頁面所用編碼類型,輸入對應的值使其內容與安全代碼聯合起來被識別為一個新的字符,使安全檢查失效從而實施XSS攻擊。
ii) 繞過長度限制:當頁面對輸入內容有長度限制時,可以將XSS腳本寫到別的文件中,再作為一個event加載到需要攻擊的頁面中。
或者當我們可以通過注釋內容限制來進行XSS攻擊。比如當有兩個文本框時我們分別在兩個框中輸入內容并組成html的注釋符,將文本限制注釋掉以進行XSS攻擊。
書中示例:
這樣中間的代碼就被<!--...-->注釋掉了。
iii) 使用<base>標簽:該標簽可以定義頁面上的所有使用“相對路徑”標簽的hosting地址,即在可以在頁面的任何地方使用,并作用于其后的所有標簽。
攻擊者如果在頁面中插入了標簽,就可以通過在遠程服務器上偽造圖片、鏈接或腳本,劫持當前頁面中的所有使用“相對路徑”的標簽。目前使用較少。
iv) window.name:window對象的name屬性的特征為:在一個窗口中,所有頁面都是共享name屬性,并且可以對其擁有讀寫權限的。而且該屬性持久存在在窗口中,不會被重置。
所以可以使用該屬性跨域/頁面獲取數據。
有關以上內容的擴展閱讀:
⑥ 其余看似不可能但可以被利用的漏洞
一些被認為無法利用被人忽視的漏洞隨著時間推移找到了新的利用方法,其中部分已被人們認可并進行修復。比如:
i) Apache Expect XSS
ii) 反射型XSS嵌套在存儲型XSS中使用
iii)?基于FLASH的XSS:容易被忽視,一般的掃描工具不易發現。OWASP單獨為FLASH建了一個wiki頁面便于查看
iv) JavaScript框架的漏洞:比如出名的jQuery就曾有過安全考慮不足的設計。成熟的開發框架漏洞會很少,所以開發人員也得具有相當的安全意識。
在jQuery中有一個html()方法。這個方法如果沒有參數,就是讀取一個DOM節點的inner-HTML;如果有參數,則會把參數值寫入該DOM節點的innerHTML中。這個過程中有可能產生“DOM Based XSS”。
擴展閱讀:
除了以上提及漏洞外,每年的TOP web安全漏洞可見:OWASP官網
開放式Web應用程序安全項目(OWASP,Open Web Application Security Project)是一個組織,它提供有關計算機和互聯網應用程序的公正、實際、有成本效益的信息。其目的是協助個人、企業和機構來發現和使用可信賴軟件。