av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

無須字母構(gòu)建XSS向量

之前我在玩一個XSS游戲的時候突然有了些想法,本著分享的原則,于是便有了這篇文章。在此,我將分享一個此前沒有接觸過的一個XSS攻擊向量。

成都創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、朔州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為朔州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

相同水平的前提下,在攻擊向量中不使用任何字母,且必須調(diào)用alert(1)。

閑話少說,看這里:

""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]][(''+{})[5]+(''+{})[1]+((""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]])+"")[2]+(!1+'')[3]+(!0+'')[0]+(!0+'')[1]+(!0+'')[2]+(''+{})[5]+(!0+'')[0]+(''+{})[1]+(!0+'')[1]](((!1+"")[1]+(!1+"")[2]+(!0+"")[3]+(!0+"")[1]+(!0+"")[0])+"(1)")()

真是一團糟,我們到底做了些什么呢?接下來容我慢慢給大家道來。

分析

首先從空字符串開始,接下來我們訪問括號而不是我們熟悉的點符號的屬性。

請注意,在接下來的一分鐘我們將構(gòu)建字符串,不會用到點符號構(gòu)造字符串名的對象屬性,現(xiàn)在切換到括號。

現(xiàn)在我們訪問的是什么屬性?下面這個就是“字符串”

(!1+"")[3]+(!0+"")[2]+(''+{})[2]

接下來從!1(false)開始,將“”添加到一個non-String值中是一個快速且直接的方法,所以(!1+””)我們得到false

將字符帶入索引3中的“false”(結(jié)果切好是s),在(!0+””)[2]或者“true”[2]再次嘗試,你會得到字母u。最后將字符帶入索引2的字符串“[object Object]”中,你會得到字母b。

不使用任何字母,構(gòu)造一個字符串來訪問空字符串對象的“sub”屬性,然而sub不僅僅是一個屬性,它還是一個函數(shù)!

此時此刻,你可能會認為我接下來會通過調(diào)用String.sub函數(shù)破壞過濾?;蛟S這么做也行,但是我選擇更加有深度的做法,函數(shù)有什么內(nèi)置屬性?如何構(gòu)造函數(shù)?

如果你打開一個JavaScript控制臺,鍵入“”[“sub”][“constructor”],你看到了什么?為什么得到了Function()函數(shù)!似乎我們有事情干了…

給你點提示:這其中有n

((""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]])+"")[2]

我們有熟悉的“”[“sub”]:

((""["sub"])+"")[2]

向其中增加“”,得到function sub() { [native code] }。將字符帶入索引2得到字母n

總結(jié)

我們現(xiàn)在得到了相當(dāng)于Function()的“”[“sub”][“constructor”],調(diào)用它我們就可以定義一個函數(shù)了。當(dāng)我們嘗試調(diào)用alert(1)時,就需要連接更多的“true”和“false”來構(gòu)建alert字符串,其后在加上+”(1)”。

現(xiàn)在我們調(diào)用Function(“alert(1)”),大功告成,現(xiàn)在只需一個調(diào)用,返回一個匿名函數(shù)就可以實現(xiàn)彈出。

// empty string""// ["sub"][(!1+"")[3]+(!0+"")[2]+(''+{})[2]]// ["constructor"][(''+{})[5]+(''+{})[1]+((""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]])+"")[2]+(!1+'')[3]+(!0+'')[0]+(!0+'')[1]+(!0+'')[2]+(''+{})[5]+(!0+'')[0]+(''+{})[1]+(!0+'')[1]]// ("alert(1)")(((!1+"")[1]+(!1+"")[2]+(!0+"")[3]+(!0+"")[1]+(!0+"")[0])+"(1)")// call anonymous function returned by Function()()

本文最開始的Function(“alert(1)”)()確實十分混亂,不使用任何可識別的字符串確實很難辨識。你可以在地址欄鍵入“javascript:”復(fù)制粘貼上面的代碼點擊回車鍵進行測試。

我喜歡你能夠喜歡JavaScript語言中這種十分隱晦的表達方式,Happy hacking!


文章標(biāo)題:無須字母構(gòu)建XSS向量
轉(zhuǎn)載來源:http://uogjgqi.cn/article/coessep.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流