我們知道,跨站請求偽造(CSRF)漏洞帶有極大的危害性,CSRF能夠利用Web 應(yīng)用程序?qū)τ诮?jīng)認(rèn)證的連接的信任來干壞事。雖然該漏洞早在1988就被提出了,所以它是一個老問題了,但是之前對該攻擊的報道,大都集中在對在線帳戶的危害方面,所以直至今日,許多人對利用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),這個設(shè)備特別容易受到跨站請求偽造攻擊的影響,所以我們就用它來演示如何通過CSRF攻擊本地網(wǎng)設(shè)備。跨站請求偽造漏洞不僅僅只有Motorola/Netopia DSL調(diào)制調(diào)解器才有,其他DSL調(diào)制調(diào)解器也難逃厄運(yùn)。默認(rèn)時,大部分DSL調(diào)制調(diào)解器都沒有要求對配置菜單的訪問進(jìn)行身份驗(yàn)證。之所以這樣,是因?yàn)橐粋€錯誤的假設(shè),即只有受信任的設(shè)備才會出現(xiàn)在本地網(wǎng)絡(luò)上。很不幸,這種假設(shè)是錯誤的,因?yàn)橛脩粢约八麄兊臑g覽器都在本地網(wǎng)絡(luò)上,但是他們并非總是可信的。人們在web上沖浪時,會有大量的內(nèi)容展現(xiàn)在他們面前,但是好像從未注意到他們的瀏覽器正在不斷發(fā)送的各種請求,問題就在這里,這些請求可能是用戶想要發(fā)出的,但是也可能是攻擊者挾持用戶的瀏覽器發(fā)出的。
一、調(diào)制調(diào)解器的跨站請求偽造漏洞
我們之所以利用Motorola/Netopia DSL調(diào)制調(diào)解器進(jìn)行演示,不僅因?yàn)樗捎昧艘粋€假想的信任關(guān)系,并且允許請求轉(zhuǎn)換等特性。當(dāng)本地網(wǎng)上的用戶瀏覽http://192.168.1.254時,他就會看到DSL的配置主頁。在默認(rèn)的情況下,這根本不需要身份驗(yàn)證——對攻擊者來說,這太愜意了。
|
| 圖1 進(jìn)入DSL的配置主頁 |
注意,DSL的配置主頁右方有一個名為“Remote Access”的菜單選項(xiàng),我們點(diǎn)擊該選項(xiàng)時,將進(jìn)入下一畫面:
|
| 圖2 啟用遠(yuǎn)程管理功能 |
如您所見,默認(rèn)情況下遠(yuǎn)程管理功能是禁用的,然而,好在仍然有一個缺省用戶名、空密碼以及一些其他選項(xiàng),這些足以啟用永久性遠(yuǎn)程管理功能。那還猶豫什么:我們直接單擊“Enable”按鈕,這會向該設(shè)備發(fā)送一個POST,這個POST看上去是這樣的:
POST /Forms/remoteRES_1 HTTP/1.0 timeoutDisable=0&Enable=Enable |
這個POST將在該DSL調(diào)制調(diào)解器的遠(yuǎn)程管理功能,將密碼設(shè)為blehblah,同時啟用永久性遠(yuǎn)程訪問功能。看到了吧,這都是不要求身份驗(yàn)證惹得禍,否則,我們很難做到這些。 因此如果某人精心策劃了一個自動提交的JavaScript表單,那么人們就能夠利用它來提交各種值,并啟用它們自己的密碼。所以,這會使的事情變得更糟。看起來這個DSL調(diào)制調(diào)解器不僅允許我們轉(zhuǎn)換各種請求,還能接受各種值。所以,您可以將前面的POST請求轉(zhuǎn)換成一個GET請求,并得到同樣的效果。這意味著,只要設(shè)法讓用戶向下列URL發(fā)送一個請求,我們就能能夠搞定這個調(diào)制解調(diào)器:
http://192.168.1.254/Forms/remoteRES_1?NSS_RemotePassword=blehblah& |
如您所見,對用戶來說,情況更加不妙了。只要用戶點(diǎn)擊了該鏈接,就會發(fā)出一個偽造的請求,從而啟用遠(yuǎn)程管理功能,并將密碼設(shè)為攻擊者選擇的字符串。呵呵,實(shí)際上,我們還可以通過多種不同的方式來達(dá)此目的,最簡單的一個就是使用HTML的img標(biāo)簽,并將圖像大小設(shè)為1x1像素,這樣,當(dāng)找不到圖像時,就不會出現(xiàn)小紅x了。
|
如果使用這個DSL調(diào)制調(diào)解器的人訪問了包含上述圖像標(biāo)簽的頁面,那么攻擊者就能夠遠(yuǎn)程管理該DSL調(diào)制調(diào)解器,并為其設(shè)置密碼。事實(shí)上,攻擊者所能做的還遠(yuǎn)不止這些。 他們可以通過向該DSL調(diào)制調(diào)解器提交其它的請求來控制該DSL調(diào)制調(diào)解器的各項(xiàng)功能。并且,這些事情做起來簡單得令人難以置信,所以就不具體介紹了。
二、安全漏洞的影響
請記住,攻擊者已經(jīng)能夠遠(yuǎn)程管理您的路由設(shè)備。所以,即使您在網(wǎng)絡(luò)內(nèi)部具有一個私人的IP地址,攻擊者仍然能夠訪問您的日志。在直接攻擊目標(biāo)之前,需要識別目標(biāo)的內(nèi)部IP地址,并向這些目標(biāo)發(fā)送相應(yīng)的配置,但是這并非難事。基本上,本地網(wǎng)上的機(jī)器都能夠得手。
有些靜態(tài)信息對于攻擊者而言是已知的,如用戶名為admin,端口號為2420。只要掃描一下端口號就可以暴露出已被攻陷的機(jī)器。此外,攻擊者還可以在頁面上放置兩個img標(biāo)簽,一個用來設(shè)置遠(yuǎn)程管理功能,另一個用來記錄訪問該頁面的用戶的的 IP 地址。這樣可以幫助他們縮小潛在的受害者的搜索范圍。
現(xiàn)在,人們能夠在多種不同的熱門地點(diǎn)來放置他們自己的內(nèi)容,當(dāng)然社交網(wǎng)絡(luò)首當(dāng)其沖。 例如,這個安全漏洞意味著你的DSL調(diào)制調(diào)解器可能只是因?yàn)闉g覽MySpace就被攻陷——真是太可怕了! 不久前,人們還討論如何將社交網(wǎng)絡(luò)變成一個攻擊平臺,本漏洞正好可以用于此目的。這個攻擊只需要一個請求:即一個HTTP GET。在不許以HTTP GET請求的形式發(fā)送請求的情況下,發(fā)動這種攻擊可能有些困難。雖然我對其原因還不是很確定,但是我打賭摩托羅拉公司目前還不知道他們的小Web服務(wù)器所允許這一點(diǎn)——當(dāng)然,這只是猜測。
三、亡羊補(bǔ)牢
正如您獲悉(或者還不知道的)那樣,現(xiàn)在是修改Linksys無線設(shè)備的默認(rèn)配置的時候了。CSRF漏洞的利用是基于已知的靜態(tài)數(shù)據(jù)的。給DSL調(diào)制調(diào)解器設(shè)置一個口令并修改該設(shè)備的默認(rèn)IP地址是一個良好的開端。設(shè)置密碼時,務(wù)必選擇一個強(qiáng)壯的密碼。當(dāng)然,并非決不能在DSL調(diào)制調(diào)解器上啟用遠(yuǎn)程管理功能,但是當(dāng)您啟用遠(yuǎn)程管理功能您知道將會發(fā)生什么事情嗎?您的證書通過web到達(dá)您的路由設(shè)備時,并沒有采取任何加密保護(hù)。如果您好奇心重,不妨親自配置一個Linux防火墻,并只讓你的DSL的IP穿透該設(shè)備,并且在該設(shè)備上完成對DSL的配置。
我們要汲取教訓(xùn),本地網(wǎng)或者本機(jī)上一切默認(rèn)設(shè)置、密碼、可預(yù)測的位置等等都要加以修改。這樣,將來出現(xiàn)其它漏洞時,您就能更好地保護(hù)自己。
四、小結(jié)
我們知道,跨站請求偽造(CSRF)漏洞帶有極大的危害性,CSRF能夠利用Web 應(yīng)用程序?qū)τ诮?jīng)認(rèn)證的連接的信任來干壞事。本文詳細(xì)介紹了攻擊者是如何利用CSRF攻擊本地網(wǎng)設(shè)備的,同時介紹了該漏洞的影響,最后我們?yōu)樽x者介紹了其防御方法。




