日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

绕过html标签,巧妙绕过WAF的XSS技巧

發布時間:2024/1/23 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 绕过html标签,巧妙绕过WAF的XSS技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

本文假設讀者對XSS、HTML和JavaScript已經有了基本的了解。

全文使用{string}來代表Payload機制中的組件。

全文使用{?string}來代表可選組件。

全文使用“主要字符”這個名詞代表Payload中必須包含的字符。

作者建議使用URL編碼來處理Payload中不安全的字符,例如“+”和“&”等等。

在探測過程中,建議使用無害的字符串來代替{javascript}。

介紹

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

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

HTML上下文

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

1、 標簽內:

2、 標簽外:Youentered $input

標簽外

在這種上下文場景中,主要字符“

1、

2、

3、x

4、

5、

6、

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

Payload機制#1

,//,Space,Tab,LF}

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

1、

2、

3、

4、

5、

6、- 如果無法通過,則為[\s\n\r+]+;

7、

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

1、

2、

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

onauxclickondblclickoncontextmenuonmouseleaveontouchcancel

常用的Payload結束符如下:

Payload機制#2

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

,//,Space,Tab,LF}

Payload機制#3

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

明文結構如下:

,//,Space,Tab,LF}

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

,//,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:click

繞過技術:非空格填充

WAF名稱:Wordfence

Payload:click

繞過技術:數字字符編碼

WAF名稱:Barracuda

Payload:click

繞過技術:數字字符編碼

WAF名稱:Akamai

Payload:click

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

WAF名稱:Comodo

Payload:click

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

WAF名稱:F5

Payload:click

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

WAF名稱:ModSecurity

Payload:

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

WAF名稱:dotdefender

Payload:

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

參考資料

HTML規范:https://www.w3.org/TR/html52/

數字字符引用:https://en.wikipedia.org/wiki/Numeric_character_reference

總結

以上是生活随笔為你收集整理的绕过html标签,巧妙绕过WAF的XSS技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。