L003001022-HTTP攻擊與防范-目錄穿越漏洞攻擊_第1頁(yè)
L003001022-HTTP攻擊與防范-目錄穿越漏洞攻擊_第2頁(yè)
L003001022-HTTP攻擊與防范-目錄穿越漏洞攻擊_第3頁(yè)
L003001022-HTTP攻擊與防范-目錄穿越漏洞攻擊_第4頁(yè)
L003001022-HTTP攻擊與防范-目錄穿越漏洞攻擊_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

課程編寫類別內(nèi)容實(shí)驗(yàn)課題名稱目錄穿越漏洞攻擊實(shí)驗(yàn)?zāi)康呐c要求1.了解目錄穿越漏洞攻擊的方式2.掌握目錄穿越漏洞攻擊防范方法實(shí)驗(yàn)環(huán)境VPC1(虛擬PC)Windowsserver2003VPC1連接要求PC網(wǎng)絡(luò)接口,本地連接與實(shí)驗(yàn)網(wǎng)絡(luò)直連軟件描述1、學(xué)生機(jī)要求安裝java環(huán)境

2、vpc安裝windwos系統(tǒng)實(shí)驗(yàn)環(huán)境描述學(xué)生機(jī)與實(shí)驗(yàn)室網(wǎng)絡(luò)直連;VPC1與實(shí)驗(yàn)室網(wǎng)絡(luò)直連;學(xué)生機(jī)與VPC1物理鏈路連通;預(yù)備知識(shí)目錄穿越(DirectoryTraversal)攻擊是黑客能夠在Web應(yīng)用程序所在的根目錄以外的文件夾上,任意地存取被限制的文件夾、執(zhí)行命令或查找數(shù)據(jù)。目錄穿越攻擊,也有人稱為PathTraversal攻擊。服務(wù)器的基本功能是提供文件給客戶端的瀏覽器使用,例如靜態(tài)的HTML、圖片文件,動(dòng)態(tài)的ASP、PHP和JSP文件。當(dāng)瀏覽器向服務(wù)器請(qǐng)求動(dòng)態(tài)網(wǎng)頁(yè)時(shí),服務(wù)器會(huì)先執(zhí)行這個(gè)動(dòng)態(tài)網(wǎng)頁(yè),然后將執(zhí)行的結(jié)果發(fā)送給瀏覽器。為了避免使用者存取到服務(wù)器上未經(jīng)許可的文件,服務(wù)器提供兩個(gè)安全機(jī)制:(1)根目錄;(2)文件存取權(quán)限。服務(wù)器限制使用者只能存取Web應(yīng)用程序所在的根目錄,以及根目錄下的子目錄中的文件。要進(jìn)一步限制使用者只能存取根目錄中的特定文件時(shí),可以使用文件存取權(quán)限限制。網(wǎng)站的管理員決定使用者可以查找、執(zhí)行或存取哪些文件。這些安全措施是為了避免黑客執(zhí)行可執(zhí)行文件,如Windows系統(tǒng)上的cmd.exe文件,以及避免黑客存取重要的文件,如UNIX系統(tǒng)上的passwd密碼文件。但是黑客可以使用目錄穿越攻擊,來(lái)查找、執(zhí)行或存取Web應(yīng)用程序所在的根目錄以外的文件夾。如果目錄穿越攻擊成功,黑客就可以執(zhí)行破壞性的命令來(lái)攻擊網(wǎng)站。實(shí)驗(yàn)內(nèi)容1.了解目錄穿越漏洞攻擊的方式2.掌握目錄穿越漏洞攻擊防范方法實(shí)驗(yàn)步驟學(xué)生單擊實(shí)驗(yàn)拓?fù)浒粹o,進(jìn)入實(shí)驗(yàn)場(chǎng)景,進(jìn)入目標(biāo)主機(jī),(第一次啟動(dòng)目標(biāo)主機(jī),還需要安裝java空間),如圖所示:2.打開虛擬機(jī),輸入用戶名和密碼,用戶為Adminsitrator密碼為1234563.打開瀏覽器,輸入http://localhost:8080/example_code/如圖:4.找到“(11)目錄穿越漏洞攻擊(DirectoryTraversal)”項(xiàng),并點(diǎn)擊打開。5.如何攻擊目錄穿越攻擊可能發(fā)生在Web應(yīng)用程序上,也可能發(fā)生在Web服務(wù)器上。在Web應(yīng)用程序上發(fā)生的目錄穿越攻擊,是因?yàn)閃eb應(yīng)用程序要求使用者輸入文件名。例如將使用者的賬號(hào)作為保存文件的名稱,當(dāng)使用者輸入賬號(hào)后,程序會(huì)立即查找并打開指定用戶名為文件名的文件。請(qǐng)參考ex11-1.php:源碼地址在:C:\xammp\htdocs\example_code\source\code11下ex11-1.php文件會(huì)讀取一個(gè)文件名稱,這個(gè)文件名稱由URL參數(shù)file所提供。readfile函數(shù)會(huì)輸出文件的內(nèi)容,@操作符用來(lái)屏蔽錯(cuò)誤信息。將這個(gè)文件名稱與目錄字符串“home/users/”進(jìn)行結(jié)合后,就是在Web應(yīng)用程序所在的根目錄下的文件路徑。Web應(yīng)用程序所在的根目錄是:C:\xampp\htdocs\example_code\source\code11假設(shè)使用者輸入的文件名稱是data.txt,那么data.txt文件的完整路徑是:C:\xampp\htdocs\example_code\source\code11\home\users\data.txtdata.txt文件的內(nèi)容如下:(詳細(xì)請(qǐng)查看:C:\xampp\htdocs\example_code\source\code11\home\users\下的data.txt文件)目錄穿越攻擊DirectorvTraversalAttack現(xiàn)在我們點(diǎn)擊“攻擊1”你將會(huì)看會(huì)看到下圖顯示結(jié)果:6.開始攻擊剛才是正常的輸入文件名稱,現(xiàn)在要開始執(zhí)行目錄穿越攻擊。點(diǎn)擊“攻擊2”結(jié)果如圖在表示文件系統(tǒng)的字符串中,一個(gè)點(diǎn)符號(hào)“.”表示相同的目錄,兩個(gè)點(diǎn)符號(hào)“..”表示上一層的目錄。圖發(fā)動(dòng)目錄穿越攻擊因此上述的地址:http://localhost:8080/example_code/source/code11/ex11-1.php?file=../../....//../apache/logs/access.log每一個(gè)“../”記號(hào)會(huì)往上移動(dòng)一層目錄,這個(gè)地址有5個(gè)“../”記號(hào),因此總共往上移動(dòng)了4層目錄。本來(lái)data.txt文件的完整路徑是:C:\xampp\htdocs\example_code\source\code11\home\users\data.txt現(xiàn)在往上移動(dòng)了4層目錄后,就是:C:\xampp的目錄。將C:\xampp與4個(gè)“../”記號(hào)后面的地址Apache/logs/access.log進(jìn)行結(jié)合后,就是:C:\xampp\apache\logs這表示要打開Apache服務(wù)器內(nèi)的日志文件access.log,結(jié)果如圖11-2所示的文件真的打開了。服務(wù)器日志文件access.log應(yīng)該是只能讓網(wǎng)站管理員查看,其他的使用者根本不應(yīng)該能夠查找這個(gè)服務(wù)器記錄文件。但是黑客利用目錄穿越攻擊,就能夠隨便地打開、查看,甚至執(zhí)行網(wǎng)站內(nèi)的絕密文件。下面點(diǎn)擊“攻擊2”,你會(huì)看到如下結(jié)果:這個(gè)地址告訴服務(wù)器要顯示W(wǎng)indows目錄內(nèi)的boot.ini文件的內(nèi)容。7.防范的方法要防范目錄穿越與遠(yuǎn)程文件調(diào)用攻擊,可以使用下列方法。(1)不要使用使用者提供的文件名。(2)檢查使用者輸入的文件名中是否有“..”的目錄級(jí)層的字符。(3)php.ini文件中設(shè)置openbasedir來(lái)指定可以打開文件的目錄。(4)php.ini文件中設(shè)置allow_url_fopen為Off,來(lái)讓W(xué)eb應(yīng)用程序不能打開遠(yuǎn)程文件。(5)realpath與basename函數(shù)來(lái)處理使用者輸入的文件名。8.使用者輸入的文件名目錄穿越攻擊是利用“../”的目錄級(jí)層的記號(hào)來(lái)穿越于任意的文件夾中。因此如果能夠檢查使用者輸入的文件名中是否有“..”的目錄級(jí)層的字符,就可以事先決定要不要調(diào)用使用者輸入的文件。在ex11-5.php文件中加入檢查“..”字符的程序代碼:(源代碼在:C:\xampp\htdocs\example_code\source\code11\ex11-5.php)strstr函數(shù)會(huì)返回第一個(gè)要查找的子字符串的位置,一直到被查找的字符串結(jié)尾。用法如下:stringstrstr(stringhaystack,stringneedle)●haystack是被查找的字符串;●needle是要查找的子字符串。如果找不到要查找的子字符串,strstr函數(shù)會(huì)返回FALSE。點(diǎn)擊“防護(hù)2”,你將看到如下結(jié)果:檢查使用者輸入的文件名注意,“../”字符的URL編碼是%2E%2E%2F,因此上述的地址可以寫成:http://localhost:8080/example_code/source/code11/ex11-5.php?file=%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2FApache2.2/logs/access.log在Windows操作系統(tǒng)上,目錄級(jí)層的字符可以使用“../”或“..\”,因此上上述的地址可以寫成:http://localhost:8080/example_code/source/code11/ex11-l.php?file=..\..\..\..\Apache2.2/logs/access.log注意,“..\”字符的URL編碼是%2E%2E%5C,因此上述的地址可以寫成:http://localhost/example/ex11-5.php?file=%2E%2E%5C%2E%2E%5C%2E%2E%5C%2E%2E%5CApache2.2/logs/access.logex11-5.php文件對(duì)這4個(gè)地址都有效。9.設(shè)置open_basedir打開“我的電腦”找到"C:\xampp\php"下的php.ini文件,在php.ini文件中將;open_basedir=屬性指定可以打開文件的目錄。例如:open_basedir="/pathl:/path2:/path3"這將指定/pathl、/path2與/path3是可以打開文件的目錄。例如,指定只有C:/xammp/htdocs/example_code/source/code11目錄中的文件可以打開:open_basedir="example_code/source/code11"如圖設(shè)置可以打開文件的目錄修改配置文件后,重啟桌面上XAMPP,如下圖所示先將apache服務(wù)stop,再start。再次點(diǎn)擊“攻擊1”結(jié)果如圖11-11所示,出現(xiàn)錯(cuò)誤的信息。10.設(shè)置allow_url_fopen為Off在php.ini文件中設(shè)置allow_url_fopen為Off,Web應(yīng)用程序就不能打開遠(yuǎn)程文件。既然不能打開遠(yuǎn)程文件,遠(yuǎn)程文件引入攻擊自然就沒有作用。不過,如果Web應(yīng)用程序需要調(diào)用遠(yuǎn)程文件,allow_url_fopen就必須設(shè)置為On。11.使用realpath與basename函數(shù)來(lái)處理文件名如果使用者輸入的文件名中包含有“./”或“../”等可疑的字符,有可能就是黑客在使用目錄穿越攻擊。您可以使用realpath和b

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論