偽裝跨站請(qǐng)求來攻擊本地網(wǎng)絡(luò)設(shè)備
以下是OMG小編為大家收集整理的文章,希望對(duì)大家有所幫助。
我們知道,跨站請(qǐng)求偽造(CSRF)漏洞帶有極大的危害性,CSRF能夠利用Web 應(yīng)用程序?qū)τ诮?jīng)認(rèn)證的連接的信任來干壞事。雖然該漏洞早在1988就被提出了,所以它是一個(gè)老問題了,但是之前對(duì)該攻擊的報(bào)道,大都集中在對(duì)在線帳戶的危害方面,所以直至今日,許多人對(duì)利用CSRF攻擊本地網(wǎng)設(shè)備甚至localhost上的服務(wù)這一點(diǎn)仍然一無所知。實(shí)際上,在運(yùn)行Web服務(wù)器的本地網(wǎng)上的任何設(shè)備都易受CSRF的攻擊,本文將以Motorola/Netopia設(shè)備為例加以詳細(xì)說明。
Motorola/Netopia 2210 DSL調(diào)制調(diào)解器是由AT&T公司于2007年推出的一款產(chǎn)品。 研究發(fā)現(xiàn),這個(gè)設(shè)備特別容易受到跨站請(qǐng)求偽造攻擊的影響,所以我們就用它來演示如何通過CSRF攻擊本地網(wǎng)設(shè)備??缯菊?qǐng)求偽造漏洞不僅僅只有Motorola/Netopia DSL調(diào)制調(diào)解器才有,其他DSL調(diào)制調(diào)解器也難逃厄運(yùn)。默認(rèn)時(shí),大部分DSL調(diào)制調(diào)解器都沒有要求對(duì)配置菜單的訪問進(jìn)行身份驗(yàn)證。之所以這樣,是因?yàn)橐粋€(gè)錯(cuò)誤的假設(shè),即只有受信任的設(shè)備才會(huì)出現(xiàn)在本地網(wǎng)絡(luò)上。很不幸,這種假設(shè)是錯(cuò)誤的,因?yàn)橛脩粢约八麄兊臑g覽器都在本地網(wǎng)絡(luò)上,但是他們并非總是可信的。人們?cè)趙eb上沖浪時(shí),會(huì)有大量的內(nèi)容展現(xiàn)在他們面前,但是好像從未注意到他們的瀏覽器正在不斷發(fā)送的各種請(qǐng)求,問題就在這里,這些請(qǐng)求可能是用戶想要發(fā)出的,但是也可能是攻擊者挾持用戶的瀏覽器發(fā)出的。
一、調(diào)制調(diào)解器的跨站請(qǐng)求偽造漏洞
我們之所以利用Motorola/Netopia DSL調(diào)制調(diào)解器進(jìn)行演示,不僅因?yàn)樗捎昧艘粋€(gè)假想的信任關(guān)系,并且允許請(qǐng)求轉(zhuǎn)換等特性。當(dāng)本地網(wǎng)上的用戶瀏覽http://192.168.1.254時(shí),他就會(huì)看到DSL的配置主頁。在默認(rèn)的情況下,這根本不需要身份驗(yàn)證——對(duì)攻擊者來說,這太愜意了。
注意,DSL的配置主頁右方有一個(gè)名為“Remote Access”的菜單選項(xiàng),我們點(diǎn)擊該選項(xiàng)時(shí),將進(jìn)入下一畫面:
圖2 啟用遠(yuǎn)程管理功能
如您所見,默認(rèn)情況下遠(yuǎn)程管理功能是禁用的,然而,好在仍然有一個(gè)缺省用戶名、空密碼以及一些其他選項(xiàng),這些足以啟用永久性遠(yuǎn)程管理功能。那還猶豫什么:我們直接單擊“Enable”按鈕,這會(huì)向該設(shè)備發(fā)送一個(gè)POST,這個(gè)POST看上去是這樣的:
POST /Forms/remoteRES_1 HTTP/1.0Host: 192.168.1.254NSS_RemotePassword=blehblah&NSS_EnableWANAdminAccessRES=on&timeoutDisable=0&Enable=Enable
這個(gè)POST將在該DSL調(diào)制調(diào)解器的遠(yuǎn)程管理功能,將密碼設(shè)為blehblah,同時(shí)啟用永久性遠(yuǎn)程訪問功能??吹搅税?,這都是不要求身份驗(yàn)證惹得禍,否則,我們很難做到這些。 因此如果某人精心策劃了一個(gè)自動(dòng)提交的JavaScript表單,那么人們就能夠利用它來提交各種值,并啟用它們自己的密碼。所以,這會(huì)使的事情變得更糟??雌饋磉@個(gè)DSL調(diào)制調(diào)解器不僅允許我們轉(zhuǎn)換各種請(qǐng)求,還能接受各種值。所以,您可以將前面的POST請(qǐng)求轉(zhuǎn)換成一個(gè)GET請(qǐng)求,并得到同樣的效果。這意味著,只要設(shè)法讓用戶向下列URL發(fā)送一個(gè)請(qǐng)求,我們就能能夠搞定這個(gè)調(diào)制解調(diào)器:
http://192.168.1.254/Forms/remoteRES_1?NSS_RemotePassword=blehblah&NSS_EnableWANAdminAccessRES=on&timeoutDisable=0&Enable=Enable
如您所見,對(duì)用戶來說,情況更加不妙了。只要用戶點(diǎn)擊了該鏈接,就會(huì)發(fā)出一個(gè)偽造的請(qǐng)求,從而啟用遠(yuǎn)程管理功能,并將密碼設(shè)為攻擊者選擇的字符串。呵呵,實(shí)際上,我們還可以通過多種不同的方式來達(dá)此目的,最簡(jiǎn)單的一個(gè)就是使用HTML的img標(biāo)簽,并將圖像大小設(shè)為1x1像素,這樣,當(dāng)找不到圖像時(shí),就不會(huì)出現(xiàn)小紅x了。
如果使用這個(gè)DSL調(diào)制調(diào)解器的人訪問了包含上述圖像標(biāo)簽的頁面,那么攻擊者就能夠遠(yuǎn)程管理該DSL調(diào)制調(diào)解器,并為其設(shè)置密碼。事實(shí)上,攻擊者所能做的還遠(yuǎn)不止這些。 他們可以通過向該DSL調(diào)制調(diào)解器提交其它的請(qǐng)求來控制該DSL調(diào)制調(diào)解器的各項(xiàng)功能。并且,這些事情做起來簡(jiǎn)單得令人難以置信,所以就不具體介紹了。