楊勇,胡勇(四川大學(xué)電子信息學(xué)院,成都 610065)
基于跨站腳本的路由設(shè)備跨域攻擊模型
楊勇,胡勇
(四川大學(xué)電子信息學(xué)院,成都610065)
路由設(shè)備有連接局域網(wǎng)和廣域網(wǎng)實(shí)現(xiàn)不同網(wǎng)絡(luò)互相通信的作用,同樣也起到數(shù)據(jù)處理、網(wǎng)絡(luò)管理等安全作用。類似于廣泛重視和研究的Web服務(wù)器漏洞,路由設(shè)備如路由器、Wi-Fi等管理平臺也同樣存在漏洞,攻擊者可以通過跨站腳本攻擊繞過路由設(shè)備的網(wǎng)絡(luò)訪問管理,從而禁用或改變它的功能設(shè)置,使攻擊者獲得訪問權(quán)限并展開進(jìn)一步的攻擊。因此,必須防止路由設(shè)備的跨站腳本攻擊,保證其安全。
跨域攻擊指的是利用網(wǎng)站存在的前端安全漏洞或跨域安全設(shè)置缺陷進(jìn)行的Web攻擊。傳統(tǒng)的安全思維是按資產(chǎn)、功能優(yōu)先保護(hù)核心業(yè)務(wù)等,非核心業(yè)務(wù)的安全等級一般沒有核心業(yè)務(wù)高,但跨域Web攻擊可以從一般域攻擊到核心域。
路由設(shè)備特別是路由器、Wi-Fi接入點(diǎn)存在的腳本漏洞威脅有下面幾種。
1.1跨站腳本攻擊(XSS)
跨站腳本攻擊[2-3],是Web前端的攻擊,當(dāng)用戶瀏覽該網(wǎng)頁時(shí),嵌入網(wǎng)頁的惡意代碼就會被執(zhí)行,從而達(dá)到攻擊者攻擊的目的。XSS攻擊類型分為反射型和存儲型[1]。通過跨站腳本攻擊可以獲取操作權(quán)限、提權(quán)、針對性掛馬等。
1.2CSRF(Cross-Site Request Forgery)跨站請求偽造
CSRF與XSS攻擊方式差異很大。XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊不多,正因?yàn)槿绱耍瑢ζ溥M(jìn)行防范的資源也相當(dāng)稀少,使其變得難以防范,所以被認(rèn)為比XSS更具危險(xiǎn)性。當(dāng)前,CSRF的防范已被越來越多的網(wǎng)站所重視。
路由設(shè)備腳本攻擊需要考慮多方面的問題。首先從客戶瀏覽器的一般訪問過程開始研究,逐步完成各個(gè)環(huán)節(jié)的攻擊,最后實(shí)現(xiàn)跨域攻擊。路由設(shè)備本身并沒有過多的交互面板,也不需要使用外部數(shù)據(jù)庫、服務(wù)器,基本的數(shù)據(jù)參數(shù)只需要簡單地保存在路由設(shè)備的存儲器中,所以能完成路由設(shè)備腳本攻擊的方法集中在登錄界面的基礎(chǔ)認(rèn)證方式上。本節(jié)通過還原客戶訪問網(wǎng)絡(luò)的一般過程,逐步實(shí)現(xiàn)腳本漏洞攻擊。
2.1跨站腳本攻擊的觸發(fā)條件研究
按照用戶的一般訪問網(wǎng)絡(luò)過程,具有一定安全意識的用戶在進(jìn)行瀏覽器操作時(shí),會選擇性訪問較為安全的網(wǎng)站,那如何在一個(gè)安全的網(wǎng)頁上放置攻擊者設(shè)計(jì)的腳本代碼,就是首先需要考慮的。跨站腳本攻擊就能達(dá)到這個(gè)目的,攻擊者往Web頁面里插入惡意腳本代碼,當(dāng)用戶瀏覽該網(wǎng)頁時(shí),嵌入該頁面的腳本代碼會被執(zhí)行。這個(gè)過程的重點(diǎn)就是突破網(wǎng)站服務(wù)器的安全防御和繞過瀏覽器的安全策略。
對于家庭用戶,可在其訪問率較高的網(wǎng)站尋找存儲型跨站漏洞或者隱蔽性更好的DOM型腳本漏洞。對于特定用戶,例如會員、管理員、VIP等具有特殊權(quán)限,能夠控制網(wǎng)絡(luò)訪問、流量控制的用戶,可以進(jìn)行更具有針對性的攻擊策略。會員有很多有意義的操作或者有我們需要的內(nèi)部個(gè)人資料,所以我們可以通過XSS對已登錄訪問者進(jìn)行有權(quán)限操作。筆者認(rèn)為cookies的盜取應(yīng)該算作這一項(xiàng),因?yàn)槠淠康囊彩谦@取用戶操作權(quán)限(盜口令包括在內(nèi)),從而獲取用戶某些信息或者進(jìn)行權(quán)限下的相關(guān)操作。此類攻擊的重點(diǎn)是上述所說的突破網(wǎng)站服務(wù)器的安全防御。
瀏覽器的安全策略同樣不能忽視,使用腳本攻擊技術(shù)就需要考慮如何跨域,受同源策略所限,不同域名是無法進(jìn)行隨意訪問的。讓窗口或框架在不同域頁面之間跳轉(zhuǎn),是件很尋常的事情,所以跳轉(zhuǎn)操作總是被允許的。只有試圖讀寫頁面內(nèi)容時(shí),才會受到限制。而對于跨子域的訪問限制并沒有如此嚴(yán)格,一類可行的技術(shù)是通過設(shè)置document.domain實(shí)現(xiàn)跨域,當(dāng)兩個(gè)二級域名,URL協(xié)議,端口都相同的網(wǎng)頁,自身都通過JavaScript顯示地設(shè)置了相同的 document.domain值,并且此值至少等于自身的二級域名,它們之間才可以相互作用。也就是說,當(dāng)網(wǎng)頁作者指定document.domain屬性為域名的后半部分時(shí),讀寫許可將擴(kuò)展至二級域名。例如:http://www.aaa.com下的某個(gè)頁面,將document.domain屬性設(shè)置成aaa.com,同時(shí) http:// home.aaa.com下的某個(gè)頁面,也將document.domain屬性設(shè)置成 aaa.com,它們之間即可完成跨子域的訪問。因?yàn)?,只有?aaa.com結(jié)尾的站點(diǎn)上的文檔,才可能將其document.domain屬性設(shè)置為aaa.com,這樣就確保了同一個(gè)服務(wù)提供者的頁面,才能互相提供權(quán)限,從而完成交互操作。在開發(fā)人員方面這是很方便的跨域技術(shù),但是在攻擊者眼中這簡直就是一個(gè)大后門,黑客只需要找到*.aaa.com下任意一個(gè)XSS漏洞,在任意一個(gè)子域名里的網(wǎng)頁都可以跨域攻擊a.aaa.com和b.aaa. com。
2.2基礎(chǔ)認(rèn)證與權(quán)限認(rèn)證繞過策略
有了上述的跨站條件,接下來需要考慮的就是繞過認(rèn)證和在用戶正常訪問網(wǎng)頁時(shí)毫無征兆地觸發(fā)代碼,跨站訪問偽造(CSRF)技術(shù)就可以實(shí)現(xiàn)。路由器的默認(rèn)網(wǎng)關(guān)(即路由器訪問地址)都是類似的URL設(shè)置,這給攻擊者創(chuàng)造了可實(shí)現(xiàn)跨站訪問偽造攻擊的條件。通過遍歷默認(rèn)用戶名、口令實(shí)現(xiàn)登錄認(rèn)證,前提是路由器的設(shè)置仍為默認(rèn)用戶名和口令。
大量的測試研究表明,路由器之間底層的代碼差別很大,但整體的設(shè)計(jì)思路有很明顯的相似點(diǎn),尤其需要著重說明的是權(quán)限認(rèn)證,其共同點(diǎn)是都在請求操作時(shí)在請求頭(request header)[5]中添加cookie或者類cookie方式的header。經(jīng)過一定數(shù)量的路由檢測,主要的權(quán)限認(rèn)證繞過漏洞有:仿造cookie,類cookie權(quán)限認(rèn)證shell,設(shè)備自身認(rèn)證缺陷。
相當(dāng)一部分路由器其cookie的設(shè)計(jì)比較巧妙,每次認(rèn)證都會生成隨機(jī)數(shù)的cookie,并且使用session技術(shù)設(shè)置了存在時(shí)間。還有的設(shè)備并沒有直接使用cookie,而是使用了類似于 cookie認(rèn)證的“authorization”,其原理大同小異,將其賦值部分通過一定格式的編碼后放在請求頭文件中。在偽造訪問時(shí)攻擊者只要加上這個(gè)cookie或者類似cookie的“authorization”便可以成功。
2.3訪問偽造技術(shù)研究
研究出基礎(chǔ)認(rèn)證與權(quán)限認(rèn)證的基本原理,就可以相對應(yīng)地構(gòu)造腳本代碼了,在IE瀏覽器以及現(xiàn)有的Chrome、Firefox等主流瀏覽器都可以使用設(shè)計(jì)較為簡單的腳本攻擊。現(xiàn)在的大部分家用路由器都提供了Web管理功能,就是將路由器的LAN口和計(jì)算機(jī)相接,在瀏覽器中輸入一個(gè)地址就會彈出一個(gè)對話框,提示用戶輸入用戶名和密碼。因此我們可以設(shè)想,如果提交數(shù)據(jù)的方式已知,可以構(gòu)造一段腳本。
而在IE6.0或者Chrome、Firfox上存在一種比較特殊的URL訪問方法實(shí)現(xiàn)路由器認(rèn)證:http://admin:admin@192.168.0.1,這種方法可以不需要手動輸入用戶名和密碼完成路由器的直接認(rèn)證和跳轉(zhuǎn)。這樣攻擊者便可構(gòu)造出可跨站的方法,簡單的方法有讓用戶單擊超鏈接、瀏覽器自動請求資源,如標(biāo)簽:
這里使用更具有實(shí)用性的DOM技術(shù)實(shí)現(xiàn)起來更加方便。通過調(diào)用
function StartCSRF(){
for(var i=1;i<=3;i++){
var ifr=document.createElement("iframe");
ifr.setAttribute('name','csrf'+i);
ifr.setAttribute('id','csrf'+i);
if(i==1){
ifr.setAttribute('src','http://admin:admin@192.168.0.1'); }
ifr.setAttribute('width',0);
ifr.setAttribute('height',0);
document.body.appendChild(ifr);
}}
StartCSRF();
function CSRF1(){
var ifm1=document.getElementById("csrf2").contentWindow;
ifm1.document.write("
ifm1.document.hack.submit();
ifm1.document.close();}
除了常用的JavaScript語言構(gòu)造的代碼外,還可以使用一些其他的語言技術(shù),例如基于ActionScript的Flash CSRF,通常是由于Crossdomain.xml文件配置不當(dāng)造成的,利用方法是使用swf來發(fā)起跨站請求偽造。在這里假設(shè)權(quán)限管理文件過濾規(guī)則不嚴(yán),那么找一個(gè)可以插入Flash的地方插入自己寫的Flash就可以了,訪客訪問網(wǎng)頁就會執(zhí)行寫入的Flash腳本,下面演示Flash CSRF利用方法,通過使用URLRequestMethod. POST參數(shù),制造一個(gè)訪客訪問我們鏈接的時(shí)候,自動設(shè)置路由設(shè)備。其實(shí)現(xiàn)的結(jié)果同上述的DOM型結(jié)果一樣,流程圖如圖1所示。
2.4請求數(shù)據(jù)提交策略
路由設(shè)備跨站攻擊更多的需要測試請求數(shù)據(jù)的提交方式,客戶需要修改路由設(shè)置時(shí),要使用到表單來提交請求數(shù)據(jù)發(fā)給后臺,從而完成修改IP地址、DNS服務(wù)器、防火墻等重要參數(shù)的目的。
路由器型號不同,其數(shù)據(jù)的提交認(rèn)證方法也有或多或少的差異,需要根據(jù)特定的路由設(shè)備設(shè)計(jì)其特有的數(shù)據(jù)表單。通常受害者不會修改登錄用戶名和密碼(很多人都采用原始的默認(rèn)用戶名和密碼而不會修改),攻擊者一旦知道了受害者的IP地址,便可使用偽造訪問,通過欺騙用戶完成路由的修改。
基于本節(jié)提出的策略點(diǎn):基礎(chǔ)認(rèn)證繞過策略、權(quán)限認(rèn)證繞過策略、訪問偽造技術(shù)研究和請求數(shù)據(jù)提交策略,可以建立起路由設(shè)備跨域攻擊模型:
(1)根據(jù)網(wǎng)站服務(wù)器的安全防御和瀏覽器的安全策略的繞過方法,尋找合適的跨域攻擊訪問漏洞;
(2)用戶訪問正常網(wǎng)站,觸發(fā)惡意腳本代碼;
(3)誘發(fā)隱蔽性路由訪問;
(4)修改重要路由參數(shù)(DNS、遠(yuǎn)程訪問等)、注入存儲型跨站。
如圖2所示,此為基于跨站訪問偽造技術(shù)的路由器跨站流程,此技術(shù)是攻擊者與客戶在不同域中的跨站實(shí)現(xiàn)方法,達(dá)到跨域攻擊的目的。
腳本攻擊是一種廣泛存在,但是一直沒有被網(wǎng)站開發(fā)人員和管理人員重視的網(wǎng)站漏洞,而路由器安全更是沒有得到足夠的重視。通過對路由器XSS技術(shù)結(jié)合跨站訪問欺騙的研究,可有效檢測出路由器可能存在的安全漏洞和攻擊痕跡。
圖1
圖2
[1]吳翰清.白帽子講Web安全.電子工業(yè)出版社,2012-3.
[2]Maxe.The Beginners Guide to XSS.http://www.xssed.com/article/31/The_Beginners_guide_to_XSS 2011-4.
[3]邱永華.XSS跨站腳本攻擊剖析與防御.人民郵電出版社,2013-9.
[4]Archive for the‘XSS’Category http://ha.ckers.org/blog/category/webappsec/xss/.
[5]Gary.WrighW.Richard Stevens.TCP/IP詳解卷一:協(xié)議.機(jī)械工業(yè)出版社,2000-4.
[6]鐘晨鳴,徐少培.Web前端黑客技術(shù)揭秘.電子工業(yè)出版社,2013-1.
[7]陳建青.Web跨站腳本漏洞檢測工具的設(shè)計(jì)與實(shí)現(xiàn).1000-3428(2010)06-0152-03,2010-5.
[8]沈壽忠.基于爬蟲的XSS漏洞檢測工具設(shè)計(jì)與實(shí)現(xiàn).1000-3428(2009)21-0151-04,2009-11.
[9]陳慧寧.淺析電子商務(wù)網(wǎng)站對CSRF攻擊的防范.1005-5800(2010)11(b)-129-02.
[10]楊君剛.在線監(jiān)測的路由器安全威脅態(tài)勢量化評估方法.1000-436X(2013)11-0059-12,2013-11.
Scripting Attack;Flash Scripting;Cross-Domain Attack Technology;Router Security
Cross-Domain Attack Technology of Network Device Based on Cross Site Scripting
YANG Yong,HU Yong
(College of Electronic Information,Sichuan University,Chengdu 610065)
1007-1423(2016)05-0076-05
10.3969/j.issn.1007-1423.2016.05.017
楊勇(1989-),男,山東青州人,碩士生,研究方向?yàn)樾畔踩?/p>
胡勇(1973-),男,四川成都人,副教授,研究方向?yàn)樾畔踩?/p>
2015-12-22
2016-02-05
路由設(shè)備的腳本攻擊研究在國內(nèi)還處于早期階段,隨著國內(nèi)路由設(shè)備的普及,它潛在的安全影響越來越受到關(guān)注。闡述用戶瀏覽器提交數(shù)據(jù)的詳細(xì)過程,以及整個(gè)過程存在的腳本攻擊威脅,并通過具體的方法完成路由設(shè)備的遠(yuǎn)程攻擊、建立跨域漏洞攻擊模型。
跨站腳本;Flash跨站;跨域攻擊模型;路由器安全
Cross-site-scripting on network device in China is still at an early stage,with the popularization of routing equipment,its potential security problems are increasingly concerned.Analyzes the detailed process of the user submit data by browser,shows the whole script attack process,through the concrete method to complete the remote attack of the equipment,establishes the cross-domain attack model.