ES6中的模板字符串和新XSS Payload

眾所周知,在XSS的實戰(zhàn)對抗中,由于防守方經(jīng)常會采用各種各樣嚴格的過濾手段來過濾輸入,所以我們使用的XSS Payload也會根據(jù)實際情況作出各種各樣的調(diào)整,最常見的如避免括號,避免引號,避免關(guān)鍵字等,以繞開過濾函數(shù)的檢查,從而成功將代碼注入到網(wǎng)頁中運行。

在傳統(tǒng)的XSS Payload變形中,常用的無非有以下幾種:

  1. 使用String.fromCharCode來避免關(guān)鍵字,如String.fromCharCode(97,108,101,114,116,40,49,41);

  2. 使用URL編碼來避免括號的識別,如location=’alert%281%29’;

  3. 使用正則對象的特點來避開引號,如alert(/1/);
    在多年的研究中基本上傳統(tǒng)的變形手段都被研究的差不多了,很難找到創(chuàng)新的繞開手段。

然而,近幾年ECMAScript新版本的不斷發(fā)展和推行,在帶來了各種激動人心的語言特性的同時,也不可避免地帶來了一些新的安全挑戰(zhàn)。本文中所說的模板字符串,便是ECMAScript 6草案中的一種新特性。

MDN中所述,模板字符串(Template literals)允許嵌入表達式,并且支持多行字符串和字符串插補特性?;菊Z法為以下幾種:

我想了解如何學習

姓名:
手機:
留言: