現在的駭客主要的目的不是在破壞一個網站,而是設法在網站中得到一些權限,存取該網站中有用的資料。這篇文章主要的目的是跟大家說明網路管理和網路安全的重要,而我測試的網站是我們學校的網路硬碟,該缺點校方也應我的發表而修復,故目前並無此漏洞,大家也不必去嘗試。當然在我測試的過程中,可以取得每個學生上傳上去的作業、影片和私密資料,連老師放在網路硬碟中的評分表與未來方針與學校未來的規劃都可以拿到,所以等於是擁有很大的權限。給所有網管人員一句話:不要為了別人的方便而隨便開放某些特定的功能,否則可能會造成系統的不安全。當然程式設計師在設計程式時多多少少都會留下一些 bug,當然我也不例外,我也常常寫出一些有問題的程式,但狀況比較少,因為我已經反覆思考過可能存在的問題。或許只要你多了解一些程式語言,多看一些別人寫的程式,你應該可以避免自己的一些問題。
偷取學生或老師在網路硬碟上的資料
• 動機
• 目的
• 結果
動機
• 想測試看看學校的網路硬碟是否安全。
• 想要看看同學們到底利用網路硬碟做什麼,如何活用網路硬碟?
• 看看有沒有我想要的東西。
• 看看能不能從網路硬碟入侵學校主機,得到跟管理者一樣的管理權限。
目的
• 希望達到真正的資源共用檔案分享的目。
• 取各位同學在網路硬碟上所存放資料。
• 看看有沒有我想要的東西並設法取得。
結果
• 取得檔案位置並成功下載到網路上的資料。
故事的開始
某年某月某日,無意間將一個.php檔上傳至學校的網路硬碟,發現它竟然可以執行,因此開始試試php程式的功能。之後,從網路上得知*.asp或*.php好像有安全性的考量,尤其是asp所撰寫的網頁程式,所以想試試學校的網頁是否安全。於是開始學php,從使用手冊中發現幾個有意思的函數,便開始在自己的機電腦作實驗。
我們可以從php的使用說明書中找到一個函數叫phpinfo(),此函數有助於幫助我們了解主機那邊的情況,要知己知比在開始動作才識聰明的抉擇。於是透過一些簡單的實驗與測試得到以下結論:
系統 : Linux
Php版本 : PHP Version 4.3.0
伺服器 : Apache/1.3.27
使用權限 :在webhd下的檔案夾皆屬於同一個UID所擁有,所以一但我成功登入學校的網路硬碟之後,應該會取得UID是504的所有權限,就是能夠讀取所有在webhd的所有檔案,而且有權利取得其下的所有資料。
實作
STEP1 [知道學校的網頁是否支援php程式] http://indweb.ttu.edu.tw/g9106028/step1.php(結果如圖3-1)
• 先確認學校的主機支援php的cgi程式。
• 上傳一個測試的php程式。
php的語法<? echo "本主機支援php";?> <-----很簡單吧,任何人都會
STEP2 [知道學校所對php使用的限制] http://indweb.ttu.edu.tw/g9106028/step2.php (如圖3-2、圖3-3、圖3-4、圖3-5)
php的語法<? phpinfo(); ?>
系統: Linux
Php版本: PHP Version 4.3.0
伺服器: Apache/1.3.27
詳細資訊請參閱光碟中 \偷取網路上的資料\phpinfo().htm
• Safe mode的狀態是on情況有些不妙。
• register_globals 的狀態是off部傳入任何參數,好吧就用手動的。
• 其他訊息說明請參閱說明書
圖3-3
圖3-4
圖3-5
STEP3 [先探測一下所有的帳號及目錄] http://indweb.ttu.edu.tw/g9106028/step3.php (如圖3-6、圖3-7、圖3-8)
• 先探測一下所有的帳號及目錄,當然會看到每個老師和同學所存放資料的檔案夾。
• 程式請參閱附錄一
• 因為register_globals的狀態是off,所以我所作的連結失效。
• 進入tlpao的檔案夾,看看有沒有什麼可用的資料。
• 發現”大同大學網路報名流水帳號及密碼.doc”,不知道裡面放的是什麼資料
圖3-6
圖3-6是學生資料夾,圖3-7是老師的資料夾,圖3-8是某帳號的資料夾內所存放的內容。
圖3-7
圖3-8
STEP4 [檔案打不開,查一下原因] http://indweb.ttu.edu.tw/g9106028/step4.php (如圖3-9)
• 發現檔名是中文的好像不能拿到。
• /webhd/tlpao/webhdwebmgm.rar也打不開
• Perms(檔案的權限設定)和其他的都不一樣,故必須想其他辦法。
• 好像從這個檔案夾得不到什麼好東西,畢竟權限不足。
• safe mode是on,無法使用任何的系統指令,而且只能存取同一個UID的檔案和資料夾,故無法切到/etc的目錄,即使切入也無法動作。
• 但是所有同學的檔案和檔案夾的UID皆相同,表示可以讓我們自由查看他們的資料。
圖3-9
STEP5 [取得資料] http://indweb.ttu.edu.tw/g9106028/step5.php
• 利用STEP3的方法找尋想要取得資料的資料夾,,一一勘查老師和同學們的檔案夾。
• 隨便找一個同學來實現g9106025,隨便選的(實驗用)。
• 看到”1213172413_6.avi (如圖3-10) “檔案,好奇吧,就把它載回來播播看,怎麼會是有顏色的......
圖3-10
從圖3-10得知在g9106025的資料夾下存在檔名為1213172413_6.avi的檔案,於是我們只要連結至http://indweb.ttu.edu.tw/g9106025/1213172413_6.avi 就可以下載到檔案了。
瀏覽其他目錄(圖3-11、圖3-12、圖3-13)
圖 3-11
圖3-12
圖3-13
<?
/***************************************************************
此程式能查看某目錄下的所有檔案夾以及檔案
撰寫日期:20030503
修正日期:20030508
函式說明:listdir()是列出該目錄下的所有檔案及檔案夾
Open()是用來將檔案開啟的函數
FileNo()顯示編號
ShowFilePath()顯示目前路徑
ToReadPath()讀取下層目錄的資料
IsDir()判斷該檔案是否為目錄
FindDiskFreeSpace()檢查所佔的空間
IsLink()判斷該檔案是否為連結
FileSize()檢查所佔的空間
Close()關檔
使用方式: listdir("Path you want to see"); ex. listdir("/webhd");
****************************************************************/
function listdir($location){
$d = Open($location);
echo "Handle: ".FileNo($d)."<br>";
echo "路徑: ".ShowFilePath($d)."<br>";
?>
得到這些資訊之後下一步你會做什麼?我將這樣的一個東西在某堂資訊講座的課程中提出來與各位同學討論,因此也成了公開的秘密,這樣的事情很快傳到資訊中心那裡,所以他們做了一些防護措施,因此目前不容易去瀏覽到所有人的資料,朋友跟我說你何必這麼麻煩,自己去研究如何取得網路硬碟資料,直接去資訊中心工讀,你馬上就可以接觸到電腦,之後你要什麼就有什麼,不是嗎?
留言列表