0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

XSS繞過(guò)小思路分享

jf_vLt34KHi ? 來(lái)源:Tide安全團(tuán)隊(duì) ? 2023-05-30 14:28 ? 次閱讀

一、白名單繞過(guò)

語(yǔ)句輸出在標(biāo)簽內(nèi)

比如

chaijie_default.png

1.閉合標(biāo)簽構(gòu)造語(yǔ)句

在白名單較為寬松的情況下,"和<>都被放出,可以利用">先閉合標(biāo)簽,然后構(gòu)造http://www.ttokpm.com/images/chaijie_default.pngss語(yǔ)句來(lái)進(jìn)行觸發(fā)。最后結(jié)果

">這種是最簡(jiǎn)單的方法,也很常見(jiàn)。

如果白名單內(nèi)沒(méi)有了",可以利用html的解析優(yōu)先級(jí)來(lái)逃離引號(hào)來(lái)觸發(fā)http://www.ttokpm.com/images/chaijie_default.pngss。構(gòu)造

title><img  data-cke-saved-src=1 src=1 >,在瀏覽器中會(huì)優(yōu)先解析標(biāo)簽,這樣就會(huì)優(yōu)先閉合標(biāo)簽,從而逃出引號(hào)的限制來(lái)觸發(fā)http://www.ttokpm.com/images/chaijie_default.pngss。

2.閉合屬性構(gòu)造http://www.ttokpm.com/images/chaijie_default.pngss

如果現(xiàn)在白名單中沒(méi)有了<>,那么就不能利用上述方法進(jìn)行構(gòu)造,可以考慮閉合src屬性,構(gòu)造新屬性來(lái)觸發(fā)http://www.ttokpm.com/images/chaijie_default.pngss。構(gòu)造

chaijie_default.png閉合src,觸發(fā)http://www.ttokpm.com/images/chaijie_default.pngss

如果白名單中<>'"全部被限制,這時(shí)http://www.ttokpm.com/images/chaijie_default.pngss利用就變的非常困難,但是如果onerror屬性可控的話,可以用html實(shí)體編碼進(jìn)行繞過(guò),來(lái)構(gòu)造任意的http://www.ttokpm.com/images/chaijie_default.pngss語(yǔ)句。https://config.net.cn/tools/HtmlEncode.html 比如chaijie_default.png

3899a1d8-fe07-11ed-90ce-dac502259ad0.png

語(yǔ)句輸出在js中

語(yǔ)句直接輸出在js代碼中是非常危險(xiǎn)的,相對(duì)應(yīng)的白名單也會(huì)設(shè)置的非常嚴(yán)格。

1.constructor

JavaScript語(yǔ)言使用構(gòu)造函數(shù)(constructor)作為對(duì)象的模版。constructor屬性返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。簡(jiǎn)單來(lái)說(shuō)Object.constructor===Function。

38a4f84e-fe07-11ed-90ce-dac502259ad0.png

在js中我們可以用Function來(lái)創(chuàng)建一個(gè)函數(shù)來(lái)構(gòu)造http://www.ttokpm.com/images/chaijie_default.pngss,例如new Function('alert(1)')();,也可以不要new,簡(jiǎn)化成Function('alert(1)')()。然后將Function等價(jià)替換為Object.constructor,Object.constructor('alert(1)')()繼續(xù)轉(zhuǎn)換為'...'.substr.constructor('alert(1)')()這里的...為任意字符串,'...'.substr為一個(gè)Object,所以這個(gè)語(yǔ)句跟上面等價(jià)。在js中a.b可以寫成a['b']的形式,一次上面的語(yǔ)句可以寫成'...'['substr']['constructor']('alert(1)')()然后在js中任意字符串都可一寫成+ascii碼8進(jìn)制的形式,將語(yǔ)句字符串全部替換,'...'['163165142163164162']['143157156163164162165143164157162']('141154145162164506151')()這樣我們?cè)诎酌麊沃芯筒恍枰帜妇涂梢詧?zhí)行任意的http://www.ttokpm.com/images/chaijie_default.pngss語(yǔ)句了。

2.jsfuck

那么如果白名單更加嚴(yán)格,名單當(dāng)中沒(méi)有了和數(shù)字,這時(shí)候我們就需要借助jsfuck。jsfuck源于一門編程語(yǔ)言brainfuck,其主要的思想就是只使用8種特定的符號(hào)來(lái)編寫代碼。而jsfuck也是沿用了這個(gè)思想,它僅僅使用6種符號(hào)來(lái)編寫代碼。它們分別是(、)、+、[、]、!。我們可以直接將alert(1)進(jìn)行jsfuck編碼進(jìn)行測(cè)試。http://www.jsfuck.com/

38a9ffb0-fe07-11ed-90ce-dac502259ad0.png

也可以將Function('alert(1)')()進(jìn)行編碼來(lái)創(chuàng)建任意函數(shù)執(zhí)行。

38aef1f0-fe07-11ed-90ce-dac502259ad0.png

二、限制長(zhǎng)度繞過(guò)

長(zhǎng)度限制在20個(gè)字符內(nèi)的繞過(guò)。

分段輸入http://www.ttokpm.com/images/chaijie_default.pngss語(yǔ)句

還是拿

chaijie_default.png

舉例,在沒(méi)有過(guò)濾的情況下閉合語(yǔ)句需要">,用到了27個(gè)字符,而且基本沒(méi)有縮短的空間。這時(shí)候就需要我們找多個(gè)點(diǎn)來(lái)分段構(gòu)造http://www.ttokpm.com/images/chaijie_default.pngss。

1.利用注釋符


">

我們可以看到,分成3段利用注釋符,將每段之間的的代碼注釋掉,從而將三段之間的http://www.ttokpm.com/images/chaijie_default.pngss語(yǔ)句連接起來(lái)執(zhí)行。舉個(gè)例子:ibuyu cms數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)限制了20個(gè)字符select table_schema,table_name,column_name,column_type,column_comment from information_schema.columns where table_schema= 'ibuyu'

38ba460e-fe07-11ed-90ce-dac502259ad0.png 將上述語(yǔ)句分三次插入,可以看到http://www.ttokpm.com/images/chaijie_default.pngss中間的語(yǔ)句都被注釋掉,形成了。 38bf4118-fe07-11ed-90ce-dac502259ad0.png

2.模板字符串

ECMAScript 6.0(簡(jiǎn)稱ES6)是Javascript語(yǔ)言的下一代標(biāo)準(zhǔn),在2015年6月正式發(fā)布。ECMAScript是Javascript的語(yǔ)法規(guī)定,JavaScript是ECMAScript的實(shí)現(xiàn)。ES5標(biāo)準(zhǔn)中一般是輸出模板是通過(guò)字符串拼接的方式進(jìn)行的。在ES6中可以通過(guò)模板字符串簡(jiǎn)化字符串的拼接,模板字符串通過(guò)反引號(hào)來(lái)表示````。模板字符串相當(dāng)于加強(qiáng)版的字符串,除了作為普通字符串,還可以用來(lái)定義多行字符串,還可以在字符串中加入變量和表達(dá)式。因此可以使用模板字符串來(lái)將分段語(yǔ)句之間的無(wú)用代碼變?yōu)槠胀ㄗ址?,從而拼接http://www.ttokpm.com/images/chaijie_default.pngss。


">

38c58a28-fe07-11ed-90ce-dac502259ad0.png

這樣就可以利用上述兩種方法繞過(guò)長(zhǎng)度限制去拼接任意的http://www.ttokpm.com/images/chaijie_default.pngss語(yǔ)句了。

短域名

如果我們可以申請(qǐng)到一個(gè)足夠短的域名,那么我們就可以利用域名引入外部的一些東西,比如chaijie_default.png,這樣問(wèn)題似乎就變的簡(jiǎn)單了起來(lái)。但是,這個(gè)價(jià)格。。。

38ca600c-fe07-11ed-90ce-dac502259ad0.png

這時(shí)我們就得利用Unicode等價(jià)性漏洞。Unicode標(biāo)準(zhǔn)中提到,兩個(gè)不同編碼的Unicode字符可能存在一定的等價(jià)性,這種等價(jià)是字符或字符序列之間比較弱的等價(jià)類型,這些變體形式可能代表在某些字體或語(yǔ)境中存在視覺(jué)上或意義上的相似性。舉例來(lái)說(shuō),a 和a(uff41)在某些字體下看起來(lái)可能相同,15和?(u246e)其表示的數(shù)學(xué)意義可能相同,所以這兩種字符都有其相應(yīng)的等價(jià)性。其中15是兩個(gè)字符,而?是一個(gè)字符,但是再解析之后兩者等價(jià),這樣我們就用一個(gè)字符代替了二個(gè)字符。同樣的,可以用?對(duì)應(yīng)到rad``℡對(duì)應(yīng)到tel更多字符可以參考https://www.compart.com/en/unicode/ 這樣我們就可以申請(qǐng)到非常便宜的域名了。

38d500fc-fe07-11ed-90ce-dac502259ad0.png

讓我們來(lái)實(shí)驗(yàn)一些是不是真的可以引入外部的東西,插入.us,可以看到我們引入了外部的圖片。同樣我們也可以引入js腳本來(lái)實(shí)現(xiàn)我們想要的東西

38dc9ad8-fe07-11ed-90ce-dac502259ad0.png

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1007

    瀏覽量

    34970
  • SRC
    SRC
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    17901

原文標(biāo)題:XSS繞過(guò)小思路

文章出處:【微信號(hào):Tide安全團(tuán)隊(duì),微信公眾號(hào):Tide安全團(tuán)隊(duì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    預(yù)防跨站腳本攻擊(XSS)的方法

    跨站腳本攻擊(XSS),是最普遍的Web應(yīng)用安全漏洞。這類漏洞能夠使得攻擊者嵌入惡意腳本代碼到正常用戶會(huì)訪問(wèn)到的頁(yè)面中,當(dāng)正常用戶訪問(wèn)該頁(yè)面時(shí),則可導(dǎo)致嵌入的惡意腳本代碼的執(zhí)行,從而達(dá)到惡意攻擊用戶
    的頭像 發(fā)表于 09-30 10:05 ?1470次閱讀

    單片機(jī)超聲波避障車,需要多少個(gè)超聲波能夠讓小車繞過(guò)障礙物。

    本帖最后由 zeng10119 于 2017-3-21 12:01 編輯 有懂避障這方面的嗎?繞過(guò)障礙物的程序思路怎么寫?找了好多自動(dòng)壁障車資料,都是無(wú)腦避障,要么是遇到障礙物左轉(zhuǎn)或右轉(zhuǎn),要么是遇到障礙物180°轉(zhuǎn)彎。算法思路
    發(fā)表于 03-21 10:57

    怎么繞過(guò)內(nèi)部耦合器

    問(wèn)候,我一直試圖通過(guò)繞過(guò)測(cè)試端口的內(nèi)部耦合器來(lái)提高我的N5230C PNA靈敏度。為實(shí)現(xiàn)這一目標(biāo),我直接訪問(wèn)了內(nèi)部微波硬件配置,并通過(guò)循環(huán)器路由信號(hào)。請(qǐng)參閱附件。我沒(méi)有達(dá)到更好的靈敏度,但是我的測(cè)量
    發(fā)表于 10-22 16:14

    軟WAF上傳繞過(guò)+wbehshell免殺

    軟WAF上傳繞過(guò)+wbehshell免殺
    發(fā)表于 09-07 10:35 ?4次下載
    軟WAF上傳<b class='flag-5'>繞過(guò)</b>+wbehshell免殺

    基于動(dòng)態(tài)污點(diǎn)分析的DOM XSS漏洞檢測(cè)算法

    針對(duì)Web客戶端中基于文檔對(duì)象模型的跨站腳本攻擊(DOM XSS)漏洞檢測(cè)問(wèn)題,提出一種基于動(dòng)態(tài)污點(diǎn)分析的DOM XSS漏洞檢測(cè)算法。通過(guò)構(gòu)造DOM模型和修改Firefox SpiderMonkey
    發(fā)表于 12-18 16:01 ?0次下載
    基于動(dòng)態(tài)污點(diǎn)分析的DOM <b class='flag-5'>XSS</b>漏洞檢測(cè)算法

    基于Django的XSS防御研究與實(shí)現(xiàn)

    跨站腳本攻擊(XSS)是當(dāng)前最流行的Web應(yīng)用攻擊方式之一,而Django作為目前比較火熱的Web應(yīng)用開發(fā)框架,并沒(méi)有為其開發(fā)的Web應(yīng)用提供有效的XSS防御功能。本文針對(duì)此問(wèn)題,采用中間件,黑白
    發(fā)表于 04-09 11:33 ?0次下載
    基于Django的<b class='flag-5'>XSS</b>防御研究與實(shí)現(xiàn)

    什么是XSS跨站漏洞以及它的修復(fù)方案

    XSS攻擊又分好幾個(gè)種類,分存儲(chǔ)型XSS,反射型XSS,DOM型XSS,為了快速的讓大家理解這些專業(yè)術(shù)語(yǔ),我這面通俗易懂的跟大家介紹一下,存儲(chǔ)型XS
    發(fā)表于 09-09 11:34 ?1478次閱讀

    一文了解安全測(cè)試基礎(chǔ)之XSS

    在web項(xiàng)目安全漏洞中,XSS是最為流程的漏洞類型之一,今天就來(lái)介紹一下XSS。
    的頭像 發(fā)表于 06-28 11:15 ?2511次閱讀

    XSS發(fā)生原理及XSS攻擊的類型

    xss發(fā)生原理 xss就是跨站腳本攻擊,造成這種漏洞存在的根本原因是開發(fā)者的安全意識(shí)不夠而留下的漏洞,使得用戶可以直接在頁(yè)面提交代碼,并且執(zhí)行,從而獲取到用戶權(quán)限,cookie等危害,xss攻擊一般
    的頭像 發(fā)表于 08-04 18:00 ?3868次閱讀

    XSS Filters安全XSS過(guò)濾器

    ./oschina_soft/xss-filters.zip
    發(fā)表于 05-09 09:34 ?1次下載
    <b class='flag-5'>XSS</b> Filters安全<b class='flag-5'>XSS</b>過(guò)濾器

    繞過(guò)kernel模塊版本校驗(yàn)檢測(cè)

    繞過(guò)kernel模塊版本校驗(yàn)檢測(cè)
    發(fā)表于 10-28 11:07 ?0次下載

    簡(jiǎn)潔高效的XSS掃描工具

    XSSCon是一個(gè)用于掃描和利用XSS漏洞的工具,基于python 3.7編寫。
    的頭像 發(fā)表于 01-17 09:25 ?2503次閱讀

    XSS漏洞掃描器工具

    XSpear是一款基于RubyGems的的XSS漏洞掃描器。擁有常見(jiàn)的XSS漏洞掃描攻擊測(cè)試功能。還可進(jìn)行參數(shù)分析。
    的頭像 發(fā)表于 01-17 09:28 ?1710次閱讀

    什么是跨站腳本攻擊?一篇帶你了解什么叫做XSS

    XSS作為OWASP TOP 10之一。
    的頭像 發(fā)表于 12-20 09:49 ?1167次閱讀
    什么是跨站腳本攻擊?一篇帶你了解什么叫做<b class='flag-5'>XSS</b>

    IP 地址在XSS中的利用與防范

    ?隨著互聯(lián)網(wǎng)的普及和Web應(yīng)用的廣泛使用,跨站腳本攻擊(XSS)成為了網(wǎng)絡(luò)安全領(lǐng)域中的一個(gè)重要威脅。在XSS攻擊中,攻擊者常常會(huì)巧妙地利用各種元素,包括用戶的IP地址,來(lái)實(shí)現(xiàn)其惡意目的。 跨站腳本
    的頭像 發(fā)表于 08-07 16:43 ?132次閱讀