實戰檢測北大青鳥某地方學校網站
本文寫的是一次曲折的拿北大青鳥某地方學校網站shell的過程。
之前也曾拿過一個北大青鳥某網站的文章,我再次萌生了我個北大青鳥的網站練練手的想法。其實以前我也嘗試過檢測了幾個北大青鳥地方學校的網站,簡單看了下沒有註入漏洞沒有弱口令就放棄了。看了文章拿站的過程,方法並不難,所以我也決定找個網站來練練手。
一、確定目標
我首先到北大青鳥的主站看了一下,發現網站用的是獨立服務器,雖然服務器所在的IP綁定了3個域名,但發現都是指向同一個網站,官方主站,看來旁註不用想了。簡單看了下,意料之中不存在簡單的註入漏洞,也沒找到網站的後臺,本人一個,遂放棄拿主站shell的想法。主站拿不下,北大青鳥在各個省都有校區,這些校區很多都有自己的網站,估計安全性做的不如主站好,說不定能讓我拿到shell。查找各個校區的網站很簡單,點北大青鳥主站上的“校區”就可以按地區查詢到地方校區的網站,比如選擇北京市後就會列出北大青鳥所有在北京市的校區,並且有各個校區網站地址的鏈接。
我隨便選擇了一個校區的網站作為目標,為了不必要的麻煩,我就不寫網址了。
二、信息收集
確定了目標網站,先來收集一下目標網站的一些基本信息。打開目標網站首頁,發現頁面上的鏈接都是靜態頁面,通過查看首頁源文件,初步判定網站用的是aspx的網站管理系統,猜測可能是通過後臺生成的靜態頁面。存在robots.txt文件,但文件中沒出現任何目錄和文件,沒有利用價值。通過搜索“site:xxxaccp.com inurl:.aspx”沒有發現任何帶參數的鏈接,註入就不用想了,但搜出了網站的後臺,用幾個弱口令嘗試登錄後臺,沒有成功。
三、開始旁註
根據收集到的信息,直接從目標網站下手太困難,考慮旁註。在ip查詢網站反查了一下,發現目標網站所在的服務器有60個網站(其實不只60個,我這裏疏忽了),滿足旁註的條件。剩下的59個網站總有安全性做的不好的,我就不信拿不到一個shell。於是一個網站一個網站的挨個檢測是否存在低級漏洞,是否存在註入漏洞,在網站地址後面加admin和manage,看是否出來後臺登錄頁面,如果找到後臺用常用弱口令嘗試登錄。看網站是否存在robots.txt這個文件。在這過程中遇到一個可以用萬能密碼進後臺的,遇到一個用admin,admin弱口令進去後臺的,但都因為後臺功能太簡單不能獲得webshell。好不容易找到一個註入點猜解出了管理員的用戶名和密碼,但MD5加密的密碼破解不出來。總之,粗略的旁註了一遍,沒有拿到任何一個網站的shell。
四、找到任意文件下載漏洞
經過上面的查找沒有結果後,我決定找下有沒有網站存在任意文件下載漏洞。在一個網站上存在“資料下載”的鏈接,點開後有很多供下載的文件,當我把鼠標移動到一個下載文件上時,看到了下載地址,我覺得有戲,很可能存在任意文件下載漏洞,因為下載文件的地址是通過一個變量url指定的,如果對url變量沒有過濾或過濾不好就會出現任意文件下載漏洞。來驗證下,構造地址在瀏覽器中訪問,出現了下載down.asp文件的對話框,說明確實存在任意文件下載漏洞。
任意文件下載漏洞還是很有用的,利用的好可能下載到網站的數據庫文件,找到管理員的用戶名和密碼進後臺,後臺還能拿shell,這是最理想的情況了。要下載數據庫首先要知道數據庫的路徑和名稱,數據庫的路徑和名稱對於采用asp程序的網站大多數一般保存在conn.asp文件中(少部分保存在config.asp等文件中),conn.asp有的直接在網站根目錄下,有的在網站目錄下的inc目錄下,可以先嘗試下是否在上面兩個目錄下,如果不在找到後臺登錄文件的話可以下載後查看源代碼查找數據庫連接文件然後再下載數據庫。
為了省事,先來猜一下。假設存在任意文件下載漏洞的網站的數據庫連接文件為網站根目錄下的conn.asp,訪問提示“程序運行出錯。請與系統管理員聯系。”,好像確實存在這個文件,只是直接訪問報錯了。
再訪問結果提示“無法找到該頁”。
說明“程序運行出錯。請與系統管理員聯系。”不是找不到文件的錯誤提示,證明確實在網站根目錄下存在conn.asp這個文件。下載它,構造下載地址,在瀏覽器中訪問後不出意外的出現了下載conn.asp的對話框。
下載conn.asp後用記事本打開,發現了如下代碼。
dim Conn
dim dbpath
dbpatb=server.MapPath("../data/HN_kaitong,asp")
說明數據庫文件為HN_kaitong.asp,在data目錄下,知道了數據庫路徑和名稱就來下載數據庫,我第一次構造的地址訪問後出現了“D:\www\web\xxx.com\wwwroot\data\HN_kaitong.aspdoes not exist”的錯誤提示。
把下載回來的HN_kaitong.asp改名為HN_ kaitong.mdb,用Microsoft Office Access打開,在admin表中找到了管理員的用戶名Lawer和密碼72ff7fa7b7678b6d,悲劇的是72ff7fa7b7678b6d破解不出來,更悲劇的是網站的後臺也沒有找到。還是沒有獲得哪怕一個同服務器上網站的shell。
明眼人一看就知道我的地址構造錯了,因為conn.asp在網站根目錄下,數據庫文件HN_kaitong.asp相對於conn來說在它的上級目錄下的data文件夾下,不過這次構造地址錯誤也有意外的收獲,就是爆出了網站的絕對路徑,這個有很大的作用,下面會提到。用新構造的地址把數據庫文件下載了下來。
五、大膽嘗試
一時不知道怎麽辦了。靜下心來想了想,我又註意到了那個任意文件下載漏洞和爆出的那個網站絕對路徑上。再次看了下那個路徑D:\www\web\xxx.com\wwwroot\data\HN_kaitong.asp,可以知道存在任意文件下載漏洞的網站的根目錄在服務器上的絕對路徑為D:\www\web\xxxitalnc.com\wwwroot\。因為是虛擬主機,大膽猜測服務器上大部分網站的絕對路徑有一定規律,比如域名為www.xxx.com的網站的絕對路徑為D:\www\web\xxx.com\
wwwroot\。單知道別的網站的絕對路徑貌似沒什麽用,但如果可以遍歷別的網站下的所有文件再配合任意文件下載漏洞就大有用處了,你可以下載別的網站已經知道路徑和文件名的任意文件,可以下載網站的數據庫,找到管理員的用戶名和密碼後進後臺。要想利用需要滿足兩個條件。
1、網站的絕對路徑存在規律性
2、存在遍歷所有網站的漏洞
這兩個條件我不知道滿不滿足,我假設這兩個條件滿足,來驗證一下我的假設。在ip網站查詢頁面中找到了一個網站,采用的asp程序,後臺目錄為admin,數據庫連接文件為inc目錄下的conn.asp,構造下載地址,在瀏覽器中訪問,激動人心的下載文件對話框出現了。證明了我上面的兩個假設是成立的!
下載conn.asp後發現數據庫為Data/buy#2buy#cndata.asa,構造下載地址,在瀏覽器中訪問時卻提示文件不存在,構造的地址沒錯啊,去掉地址中的inc目錄竟然可以下載數據庫了(要對#進行url編碼,變成%23)。
在數據庫中找到了後臺管理員的用戶名admin和密碼9aOf39b2e2b26750,在md5在線查詢網站破解了出來,結果為23990588,然後登錄了後臺。後臺添加商品的地方有ewebeditor,但已經被閹割了,不能獲得webshell。
六、繼續碰壁
用任意文件下載漏洞把能下載數據庫的網站的數據庫都下載了一遍(還下載了一個289M的數據庫文件!),也進了幾個網站的後臺,但無奈網站後臺功能太簡單,都沒有獲得webshell。我也嘗試過利用得到的網站後臺管理員密碼作為ftp密碼,網站域名作為ftp用戶名登錄服務器的ftp,但沒有成功。
七、出現轉機
好像現在不知道該怎麽辦了。在我再次把ip查詢網站列出的目標網站同服務器上的網站檢測了一遍之後,才發現網頁下面有如下說明“提示:只顯示了部分域名。如要查看全部域名,點這裏。”我嘞個去,我以為顯示了全部域名呢,原來只顯示了部分域名啊。
點開鏈接後發現要看全部內容需要交錢成為會員,沒有錢給它。這時候我想起了好朋友路人甲給我的一個查旁註的網站地址,由於查詢速度比較慢,平時不怎麽用,但它可以免費顯示一個服務器上的所有域名,在查得目標網站所在服務器上綁定了110個域名,比在ip查詢網站顯示的多了50個。
希望多出了的50個網站中有讓我拿到webshell的。繼續旁註剛查出來的網站,繼續利用任意文件下載漏洞下載網站的數據庫,又進了一個網站的後臺,在這個後臺看到了期待已久的數據庫備份功能,上傳一個包含一句話木馬的圖片文件,通過數據庫備份得到了一個webshell。通過這個shell可以遍歷目標網站目錄下的文件了。
本來以為都到這步了,目標網站的shell可以信手拈來了,寫一個asp一句話木馬到目標網站根目錄下,寫入不成功,嘗試了目標網站根目錄下的幾個子目錄,都沒有寫入權限。覺得aspx文件的權限會大點,說不定對目標網站的目錄有寫權限,嘗試傳一個aspxspy到已經獲得shell的網站目錄下,提示上傳成功後卻找不到上傳後的文件,被殺了?重新上傳一個aspx文件,內容為test,還是上傳不成功,說明已經獲得shell的網站目錄下不允許上傳.aspx文件,此路不通。
目標網站是aspx程序的,必在網站根目錄下存在配置文件web.config,通過已經獲得的shell下載後發現目標網站用的也是Access數據庫,數據庫文件名為AccpDB_BackUP.mdb,在網站根目錄下的App_Data目錄下,下載後找到了管理員的用戶名和密碼,並且密碼沒有經過加密。掛上vpn後登錄了目標網站的後臺,但無奈的是在後臺上傳任何文件都提示“上傳目錄不存在。”,不能上傳文件,還是不能獲得目標網站的shell。
八、終償所願
雖然目前還沒有得到shell,但我收集到的信息也越來越多了。利用已經獲得的別的網站的一個shell的列目錄功能挨個查看目標網站目錄下的文件夾和文件,發現了一個kindeditor文件夾,是一個編輯器,找到了上傳文件的頁面,但上傳文件時仍然提示“上傳目錄不存在。”,不能上傳。我在MyFreeTextBox目錄下發現了一個文件ftb.imagegallery.aspx,文件名中的ftb吸引了我,難道這個文件裏保存了ftp的用戶名和密碼?我們進行訪問,打開的頁面。
好像可以上傳文件,我上傳了一個圖片文件,沒有任何提示和顯示,也不知道上傳成功沒有,難道又不能利用?我發現這個頁面還有創建文件夾的功能,看能不能利用,輸入123,點“Create Folder”後123文件夾居然創建成功了。
通過列目錄發現在MyFreeTextBox目錄下多了一個文件夾images,新創建的文件夾123就在images目錄下,雙擊新建的123文件夾來到123目錄下,再次上傳一個圖片,這次上傳成功了。
直接上傳一個.asp格式的asp一句話木馬asp.asp到123文件夾下,雖然看不到縮略圖,但是通過列目錄發現文件上傳成功了,訪問成功得到了期待已久的shell。
shell已經拿到,目標已經達成,和北大青鳥某地方學校網站的較量就告一段落了,提權我就不提了。拿到shell後回過頭來看拿shell的過程,其實最後拿shell的方法非常簡單,但找到這個方法的過程卻一波三折,非常曲折。通過這次拿shell練手也告訴我,現在如果想拿一個網站,直接通過註入或通過弱口令進後臺就拿到shell幾乎已經不可能了,這時候就需要你多試試別的方法,多找找別的漏洞,比如任意文件下載漏洞,再就是要有耐心,不要遇到一點困難就放棄,如果我中途放棄也就不會有本文了。
實戰檢測北大青鳥某地方學校網站