本周學習內容:
1.學習web安全深度剖析;
2.學習安全視頻;
3.學習烏雲漏洞;
4.學習W3School中PHP;
實驗內容:
進行DVWA文件包含實驗
實驗步驟:
Low
1.打開DVWA,進入DVWA Security模塊將 Level修改為Low,點擊Submit提交;
2.打開File Inclusion文件包含漏洞模塊。
3.點擊View Source查看服務器代碼,發現對Page參數沒有任何過濾和校驗
4.導致的就是page參數的傳入是不可控,構造url http://localhost:8088/dvwa/vulnerabilities/fi/?page=php.ini
5.發現沒有成功頁面報錯了,但是錯誤信息中暴露了服務器的絕對路徑,接下來使用服務器絕對路徑,接下來可以利用服務器絕對路徑進行偽造http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\php.ini
6.利用絕對路徑查看PHP配置文件http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\phpinfo.php
遠程文件包含:
1.如果服務器的php.ini配置文件中,選項allow_url_fopen與allow_url_include為On時,服務器會允許包含遠程服務器上的文件,如果對文件來源沒有檢查的話,就容易導致任意遠程代碼執行。編輯一個txt文件phpinfo1.txt文件,這里的代碼只是打印一句話
2.進入文件上傳File Upload模塊上傳phpinfo1.txt文件,並復制上傳鏈接的相對路徑
2.回到文件包含模塊構造URL,http://localhost:8088/dvwa/vulnerabilities/fi/?page=http://169.254.167.216:8088/dvwa/hackable/uploads/phpinfo1.txt點擊進入,可以看到txt文件中的php腳本成功顯示在頁面上
Medium
1.打開DVWA,進入DVWA Security模塊將 Level修改為Medium,點擊Submit提交;
2.打開File Inclusion文件包含漏洞模塊。
3.查看服務器源代碼,發現中級代碼中增加了對輸入的校驗,使用str_replace函數將輸入信息中的http、https、../和../"替換為空
4.此時可以使用雙寫hthttp://tp://進行遠程文件包含的方法進行實驗,這是因為代碼中把http://刪除,所以輸入的URL有變成了http://(HTTPS也是一樣的)
High
1.打開DVWA,進入DVWA Security模塊將 Level修改為High,點擊Submit提交;
2.打開File Inclusion文件包含漏洞模塊。
3.查看服務器源代碼,High級別的代碼使用了fnmatch函數檢查page參數,要求page參數的開頭必須是file,服務器才會去包含相應的文件。
4.當把一個本地文件拖入瀏覽器打開時,用的就是file協議。
5.構造url http://localhost:8088/dvwa/vulnerabilities/fi/?page=file:///C:/tools/xampp/htdocs/dvwa/hackable/uploads/phpinfo1.txt
Impossible
1.打開DVWA,進入DVWA Security模塊將 Level修改為Impossible,點擊Submit提交;
2.打開File Inclusion文件包含漏洞模塊
3.查看服務器源代碼,可以看出Impossible級別的代碼,使page的參數是能為“include.php”、“file1.php”、“file2.php”、“file3.php”,限制訪問的頁面頁面。只能訪問頁面中的這三個文件