目錄
目錄瀏覽(目錄遍歷)漏洞
目錄瀏覽漏洞是由於網站存在配置缺陷,導致網站目錄可以被任意瀏覽,這會導致網站很多隱私文件與目錄泄露,比如數據庫備份文件、配置文件等,攻擊者利用該信息可以為進一步入侵網站做准備。
目錄瀏覽漏洞的探測 :可以利用web漏洞掃描器掃描web應用進行檢測,也可通過搜索,網站標題包含 “index of” 關鍵詞的網站進行訪問
目錄瀏覽漏洞的危害:攻擊者通過訪問網站某一目錄時,該目錄沒有默認首頁文件或沒有正確設置默認首頁文件,將會把整個目錄結構列出來,將網站結構完全暴露給攻擊者; 攻擊者可能通過瀏覽目錄結構,訪問到某些隱秘文件(如PHPINFO文件、服務器探針文件、網站管理員后台訪問地址、數據庫連接文件等)。
目錄瀏覽漏洞的預防:
- IIS中關閉目錄瀏覽功能:在IIS的網站屬性中,勾去“目錄瀏覽”選項,重啟IIS。
- Apache中關閉目錄瀏覽功能:打開Apache配置文件httpd.conf,查找“Options Indexes FollowSymLinks”,修改為“ Options -Indexes”(減號表示取消,保存退出,重啟Apache)。
- Nginx 中默認不會開啟目錄瀏覽功能,若您發現當前已開啟該功能,可以編輯nginx.conf文件,刪除如下兩行:autoindex on;autoindex_exact_size on,然后重啟Nginx。

任意文件讀取/下載漏洞
任意文件讀取/下載漏洞比目錄瀏覽漏洞危害更大,他不僅會泄露網站的目錄結構,而且攻擊者可以直接獲得網站文件的內容。攻擊者可以因此獲取到很多機密的文件,比如配置文件,比如 /etc/passwd、/root/.bash_history文件等。
任意文件讀取/下載漏洞的挖掘:
- 通過web漏洞掃描工具對網站實施掃描可能發現任意文件讀取/下載漏洞,發送一系列”../”字符來遍歷高層目錄,並且嘗試找到系統的配置文件或者系統中存在的敏感文件。
- 也可通過判斷網站語言,並根據其url中部分提供的參數,進行構造相關的路徑信息,如收集到網站中間件版本為apache,則想辦法構造../../../ WEB-INF/web.xml等,然后查看其是否可被讀取或者下載出來。
- 有些WAF會過濾../,可以構造 /.%252e/.%252e/.%252e/ , %25對應的是%,%2e對應的是.,所以 .%252e/ 對應的是 ../
任意文件讀取/下載漏洞的危害:下載服務器任意文件,如腳本代碼、服務及系統配置文件等。可用得到的代碼進一步代碼審計,得到更多可利用漏洞。
Windows:
C:\boot.ini //查看系統版本
C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件
C:\Windows\repair\sam //存儲系統初次安裝的密碼
C:\Program Files\mysql\my.ini //Mysql配置
C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //Mysql配置信息
...
Linux:
/etc/passwd #查看用戶文件
/etc/shadow #查看密碼文件
/etc/my.cnf
/etc/httpd/conf/httpd.conf #查看apache的配置文件
/root/.bash_history #查看歷史命令
/root/.mysql_history #mysql歷史命令記錄文件
/var/lib/mlocate/mlocate.db #本地所有文件信息
/etc/ssh/sshd_config #ssh配置文件,如果對外開放可看到端口
/proc/self/fd/fd[0-9]*(文件標識符)
/proc/mounts
/porc/config.gz
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts
程序的配置文件
apache:
/etc/httpd/conf/httpd.conf
/etc/apache2/httpd.conf
/etc/apache2/apache2.conf
nginx:
/etc/nginx/nginx.conf
/usr/local/nginx/conf/nginx.conf
/usr/local/etc/nginx/nginx.conf
redis:
/etc/redis.conf
index.php?f=../../../../../../etc/passwd
針對Linux系統任意文件下載的幾種思路:
- 下載源代碼審計
- 數據庫備份
- 信息收集
- 中間件
任意文件讀取/下載漏洞的預防:
- 凈化數據:對用戶傳過來的文件名參數進行統一編碼,對文件類型進行白名單控制,對包含惡意字符或者空字符的參數進行拒絕。
- web應用程序可以使用chroot環境包含被訪問的web目錄,或者使用絕對路徑+參數來訪問文件目錄,使其即使越權也在訪問目錄之內。www目錄就是一個chroot應用。由chroot創造出的那個根目錄,叫做“chroot監獄”(所謂"監獄"就是指通過chroot機制來更改。某個進程所能看到的根目錄,即將某進程限制在指定目錄中,保證該進程只能對該目錄及其子目錄的文件有所動作,從而保證整個服務器的安全,詳細具體chroot的用法,可參考http://blog.csdn.net/frozen_fish/article/details/2244870
- 任意文件下載漏洞也有可能是web所采用的中間件的版本低而導致問題的產生,例如ibm的websphere的任意文件下載漏洞,需更新其中間件的版本可修復。
- 要下載的文件地址保存至數據庫中。
- 文件路徑保存至數據庫,讓用戶提交文件對應ID下載文件。
- 用戶下載文件之前需要進行權限判斷。
- 文件放在web無法直接訪問的目錄下。
- 不允許提供目錄遍歷服務。
- 公開文件可放置在web應用程序下載目錄中通過鏈接進行下載。
任意文件讀取/下載漏洞的場景:出現在文件讀取或者展示圖片等對文件讀取交互的功能塊。
