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

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

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

XSS繞過小思路分享

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

一、白名單繞過

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

比如

chaijie_default.png

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

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

">這種是最簡單的方法,也很常見。

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

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

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

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

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

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

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

語句輸出在js中

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

1.constructor

JavaScript語言使用構(gòu)造函數(shù)(constructor)作為對象的模版。constructor屬性返回對創(chuàng)建此對象的數(shù)組函數(shù)的引用。簡單來說Object.constructor===Function。

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

在js中我們可以用Function來創(chuàng)建一個函數(shù)來構(gòu)造http://wenjunhu.com/images/chaijie_default.pngss,例如new Function('alert(1)')();,也可以不要new,簡化成Function('alert(1)')()。然后將Function等價替換為Object.constructor,Object.constructor('alert(1)')()繼續(xù)轉(zhuǎn)換為'...'.substr.constructor('alert(1)')()這里的...為任意字符串,'...'.substr為一個Object,所以這個語句跟上面等價。在js中a.b可以寫成a['b']的形式,一次上面的語句可以寫成'...'['substr']['constructor']('alert(1)')()然后在js中任意字符串都可一寫成+ascii碼8進(jìn)制的形式,將語句字符串全部替換,'...'['163165142163164162']['143157156163164162165143164157162']('141154145162164506151')()這樣我們在白名單中就不需要字母就可以執(zhí)行任意的http://wenjunhu.com/images/chaijie_default.pngss語句了。

2.jsfuck

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

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

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

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

二、限制長度繞過

長度限制在20個字符內(nèi)的繞過。

分段輸入http://wenjunhu.com/images/chaijie_default.pngss語句

還是拿

chaijie_default.png

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

1.利用注釋符


">

我們可以看到,分成3段利用注釋符,將每段之間的的代碼注釋掉,從而將三段之間的http://wenjunhu.com/images/chaijie_default.pngss語句連接起來執(zhí)行。舉個例子:ibuyu cms數(shù)據(jù)庫存儲時限制了20個字符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 將上述語句分三次插入,可以看到http://wenjunhu.com/images/chaijie_default.pngss中間的語句都被注釋掉,形成了。 38bf4118-fe07-11ed-90ce-dac502259ad0.png

2.模板字符串

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


">

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

這樣就可以利用上述兩種方法繞過長度限制去拼接任意的http://wenjunhu.com/images/chaijie_default.pngss語句了。

短域名

如果我們可以申請到一個足夠短的域名,那么我們就可以利用域名引入外部的一些東西,比如chaijie_default.png,這樣問題似乎就變的簡單了起來。但是,這個價格。。。

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

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

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

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

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

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

    關(guān)注

    1

    文章

    1025

    瀏覽量

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

    關(guān)注

    0

    文章

    60

    瀏覽量

    17993

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

    軟WAF上傳繞過+wbehshell免殺

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

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

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

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

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

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

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

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

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

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

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

    XSS Filters安全XSS過濾器

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

    繞過kernel模塊版本校驗檢測

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

    簡潔高效的XSS掃描工具

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

    XSS漏洞掃描器工具

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

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

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

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

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