******:再現昔日漏洞——沁竹音樂程序的疏忽

前幾天,下載了一套“沁竹音樂網 v3.0 靜態生成”版,在測試時,竟然看到了昔日的陽光——動力上傳漏洞。 曾幾何時,動力上傳漏洞擺在我面前,但偶錯過了。如今,昔日的漏洞在沁竹音樂程序中重現,豈能再次錯過! 一、被疏忽的上傳 在百度中以“友情鏈接 廣告合作 陽光祝福 留言我們”爲關鍵字查找使用沁竹音樂程序的網站,還真不少。也許有朋友會說,爲什麼不去測試沁竹主站呢?這是因爲上傳漏洞文件“Upfile_Article.asp”存放在網站“Admin/Article”文件夾內,而沁竹主站已更改了管理目錄Admin的名稱,一時半會也猜不出更改後的名稱,所以只好測試其他使用沁竹音樂3.0的網站了。 打開一鏈接,將網址後的內容替換爲“admin/Article/Upload_Article.asp”,如圖1所示。則說明存在上傳漏洞。如果是顯示找不到文件或其他內容,則說明管理員更改了Admin目錄名或刪了此文件或其他原因,那就要再選一個網址了!
     OK!找到一個正常顯示的網站後,繼續向下進行,在上傳頁面中,點擊右鍵,選擇“查看源文件”,將其另存爲“up.txt”,然後修改其中內容,先刪除其中的本地限制提交類型JAVA語句,從 一直刪到, 再把action="upfile_article.asp" 修改爲action="WEB網址/admin/Article/upfile_article.asp",最後就是再複製一份在原語句後,並將複製語句中的FileName改爲FileName1,修改後的源文件如圖2所示。

     接下來把“up.txt”更改爲“up.htm”並運行,在第一個上傳框內選擇一個可上傳的JPG文件,在第二個上傳框內選擇一個沒有被限制的Cer文件,如圖3所示。(第二個也可選擇ASP文件,但要在上傳框內的
文件擴展名後加一空格)。

     如果沒有其他情況,上傳成功後的頁面是一個空白頁面,接下來在空白頁上點右鍵,選擇查看源文件,如圖4所示。

     其中顯示了Jpg和Cer文件上傳後的路徑及文件名,如爲“../../UploadFiles/*.cer”則該文件路徑爲WEB/UploadFiles/*.cer;如爲“UploadFiles/*.cer”,則文件路徑爲:“WEB/admin/Article/UploadFiles/*.cer”。偶所關心的是Cer更改後的名字,複製UploadFiles/20058198951327.cer替換音樂網址後的內容,回車執行,如圖5所示。成功上傳了一個簡易ASP程序。
     雖然大部分沁竹音樂程序中都存有“Upfile_Article.asp”上傳漏洞,但看了一下v2.0版的源碼後,才知道,上傳文件夾UploadFiles僅在v3.0中是默認存在的。所以,網絡中有些v2.0版音樂網站雖然也
反饋上傳成功,但因爲網站根目錄中沒有UploadFiles文件夾,也只能空歡喜一場!
二、被疏忽的生成管理

      在沁竹音樂程序v3.0中,除了有被疏忽的上傳漏洞外,還有一個等級很高的地方,也被疏忽了,那就是v3.0版的FSO文件夾。 該文件夾下的ASP文件對應的是後臺“生成管理”中的諸多功能,也就是“沁竹音樂網v3.0”版增加的靜態網頁生成功能。這其中的很多Asp文件都具有生成另一個新的Asp文件的功能,如“htmlindex.asp”生成網站根目錄下的“index.asp”、“htmlchoice.asp”生成“choice.asp”、“htmlflashmovie.asp”生成“flashmovie.asp”、“htmldjlist.asp”生成“djlist.asp”、“htmlflashmtv.asp”生成“flashmtv.asp”等等,恰恰就是這樣一些高危ASP文件,卻疏忽了限制,只要在地址欄中輸入相應的Asp文件就可使用其生成功能,因爲生成的是ASP擴展名的文件,當然也就能寫入Asp語言了。 如圖6所示。在IE地址欄中輸入:WEB/fso/htmldjlist.asp ,在打開的生成代碼中寫入: 容錯語句加一句話***,這樣點“生成”後,就把這些內容一併寫入了djlist.asp頁,然後再利用一句話***客戶端連接“WEB/djlist.asp”就可以寫入更強大的***了。

三、被疏忽的提交字符
     在“留言本”和“點歌臺”這兩個欄目中,未對寫入的字符加以過濾,因而可以寫入跨站代碼,來進行一些活動。但這還不是最危險的,如果網站使用的是默認數據庫名,那麼除了使用跨站代碼搞一些小動作外,還可以把ASP語句寫入數據庫,生成一個WEBSHELL。 沁竹音樂程序3.0版默認的數據庫爲“fdsafdjasfdasfds.asp”,夠長吧,相信有些管理員一看到這個名字就放鬆了警惕性,未做修改拿來就用了(2.0版默認數據庫爲“qizumin.asp”)。殊不知該ASP格式數據庫未做防下載處理,使用默認數據庫名稱所帶來的後果則是很嚴重地! 下面用“留言本”來演示一下。在“留言本”欄目中點“我要留言”,打開“留言”窗口,其中的“姓名”、“主頁”及“QQ”均未做任何過濾,這裏我在“主頁”中寫入一句話ASP***:“”,其他隨便填,如圖7所示。再點“發表”,就把ASP***寫入了“fdsafdjasfdasfds.asp”數據庫中了。

     接着再用偶修改的一句話***連接客戶端來上傳一個ASP***。如圖8所示。在“ASP URL”中填入已寫入***語句的ASP文件,然後點“提交”。

     如果對方沒有修改數據庫名稱,網頁則會自動轉到生成的ASP***頁“ WEB/date/jmup.asp”,如圖9所示。

四、拒絕疏忽
     對於上面的這些疏忽,可以從下面幾個方面來拒絕。 1.對於上傳,先更改網站管理目錄Admin的名稱,或刪除UploadFiles文件夾。
     接着在Upfile_Article.asp文件的頭部加入檢查語句: // 限制非管理員使用該文件。 還要在Upfile_Article.asp文件中修改限制上傳語句。在語句:for each formName in upload.file //列出所有上傳了的文件後加入:EnableUpload=False 這樣,EnableUpload的值就不會一成不變了,而是在取得每一個上傳文件後,先把EnableUpload賦爲 False,再向下運行,這樣就彌補了上傳的疏忽。2.對於疏忽FSO文件夾中的那些高危ASP文件,可以使用一個簡單的防範措施,就是在每個文件的頭 部加入檢查語句。
     但這樣只能防止非管理員打開使用這些文件,並不能阻止得到管理員權限的人用它來生成WEBSHELL,所以,最好的方法還是不要生成ASP格式文件,而是生成HTM格式的靜態網頁。 3.對於提交字符,可以採取長度限制和字符過濾的方式,而對數據庫,最好的方法還是要加入防下載處理,多管齊下,才能拒絕疏忽。聲明:本文僅用於技術交流,嚴禁用於非法途徑,否則,後果自負! 
作者: 寂寞的刺蝟
來 源: 《***防線》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章