歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

看我如何利用JavaScript全局變量繞過XSS過濾器

來源:本站整理 作者:佚名 時間:2019-06-13 TAG: 我要投稿


 
寫在前面的話
如果你發現你的攻擊目標存在XSS漏洞,但是你所有的漏洞利用嘗試似乎都被XSS過濾器(或輸入驗證和Web應用防火墻規則)屏蔽掉了的話,那你該怎么辦?非常好,在這篇文章中,我們將告訴大家如何利用JavaScript全局變量來繞過這些XSS安全防護機制。
接下來,我們將討論利用反射型或存儲型XSS漏洞的各種可能性,并繞過我們與目標站點之間的XSS過濾器或防火墻。而在我們看來,其中一種最為有效的繞過方法就是利用類似self、document、this、top或window這樣的全局變量。
注意:在接下來的Payload測試過程中,我主要使用的是PortSwigger Web Security Academy實驗平臺,但是你也可以使用瀏覽器自帶的JavaScript控制臺來進行測試。
 
前期準備工作
JavaScript全局變量到底是“何方神圣”?
根據javapoint.com的介紹:一個JavaScript全局變量必須在函數外聲明,或與窗口對象一起聲明,并且能夠被任何函數訪問。
我們假設,你的目標Web應用程序(某個JavaScript字符串或JavaScript函數存在安全問題)存在反射型XSS漏洞。那么,請大家先看看下面這段PHP腳本代碼:
echo "var message = 'Hello ".$_GET["name"]."';alert(message);";
大家可以看到,這里的“name”參數存在漏洞。但是在我們的演示樣例中,目標Web應用程序設置了一個過濾器來防止他人利用“document.cookie”這個字符串來作為用戶輸入數據,過濾器使用的正則表達式形如“/document[^.].[^.]cookie/”。大家先看看下面這些Payload:

在這里,JavaScript全局變量可以用來繞過這個過濾器。我們有很多種方法來從window對象或self對象中訪問到document.cookie,比如說,“window[“document”][“cookie”]”就不會被這個過濾器過濾掉:


大家可以從上面的截圖中看到,我們可以利用“self“alert”;”(該語句的作用等同于“alert(“foo”);”)這樣的語句來訪問任何一個JavaScript函數。這種類型的語句可以幫助我們繞過很多存在安全問題的過濾器。很明顯,我們幾乎可以在任何地方通過注釋的方式來使用這種類型的語句:
(/* this is a comment */self/* foo */)[/*bar*/"alert"/**/]("yo")

 
關于“self”對象
Window.self的只讀屬性可以將window對象本身以WindowProxy返回,它能夠以“window.self”或直接是“self”的形式來使用。這種單獨標注的使用形式有點就在于它跟非window對象的使用場景很相似,使用“self”,我們就可以嘗試找到非window對象的使用場景,因為“self”會被解析為“window.self”。比如說Web Workers,在worker場景下,“self”將會被解析為“WorkerGlobalScope.self”。【參考資料】
我們可以利用以下對象來調用任何一種JavaScript函數:
windowself_selfthistopparentframes
 
1、 字符串連接和十六進制轉義序列
目前,在繞過Web應用防火墻規則時,最常見的一種技術就是字符串連接。這種方式不僅適用于遠程代碼執行和SQL注入攻擊,而且同樣適用于JavaScript場景。現在有很多Web應用防火墻所使用的過濾器是基于JavaScript函數名列表來實現的,而這種類型的過濾器可以屏蔽包含了類似“alert()”或“String.fromCharCode()”字符串的請求。在全局變量的幫助下,我們就可以使用字符串連接或十六進制轉義序列來輕松繞過這些過濾器了。比如說:
/
** alert(document.cookie);
/
self“ale”+”rt”

當然了,還有一種更加復雜的語句可以繞過過濾器,也就是用十六進制轉義序列來替換之前的字符串。任何字符碼低于“256”的字符都可以使用十六進制碼來表示,即使用“x”轉義序列:

[1] [2] [3]  下一頁

【聲明】:黑吧安全網(http://www.pcpbjo.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        云南快乐十分前三电视