目錄php
目錄瀏覽(目錄遍歷)漏洞mysql
任意文件讀取/下載漏洞nginx
目錄瀏覽(目錄遍歷)漏洞
目錄瀏覽漏洞是因爲網站存在配置缺陷,致使網站目錄能夠被任意瀏覽,這會致使網站不少隱私文件與目錄泄露,好比數據庫備份文件、配置文件等,攻擊者利用該信息能夠爲進一步入侵網站作準備。web
目錄瀏覽漏洞的探測 :能夠利用web漏洞掃描器掃描web應用進行檢測,也可經過搜索,網站標題包含 「index of」 關鍵詞的網站進行訪問redis
目錄瀏覽漏洞的危害:攻擊者經過訪問網站某一目錄時,該目錄沒有默認首頁文件或沒有正確設置默認首頁文件,將會把整個目錄結構列出來,將網站結構徹底暴露給攻擊者; 攻擊者可能經過瀏覽目錄結構,訪問到某些隱祕文件(如PHPINFO文件、服務器探針文件、網站管理員後臺訪問地址、數據庫鏈接文件等)。sql
目錄瀏覽漏洞的預防:數據庫
- 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文件等。apache
任意文件讀取/下載漏洞的挖掘:安全
- 經過web漏洞掃描工具對網站實施掃描可能發現任意文件讀取/下載漏洞,發送一系列」../」字符來遍歷高層目錄,而且嘗試找到系統的配置文件或者系統中存在的敏感文件。
- 也可經過判斷網站語言,並根據其url中部分提供的參數,進行構造相關的路徑信息,如收集到網站中間件版本爲apache,則想辦法構造../../../ WEB-INF/web.xml等,而後查看其是否可被讀取或者下載出來。
- 有些WAF會過濾../,能夠構造 /.%252e/.%252e/.%252e/ , %25對應的是%,%2e對應的是.,因此 .%252e/ 對應的是 ../
任意文件讀取/下載漏洞的危害:下載服務器任意文件,如腳本代碼、服務及系統配置文件等。可用獲得的代碼進一步代碼審計,獲得更多可利用漏洞。bash
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應用程序下載目錄中經過連接進行下載。
任意文件讀取/下載漏洞的場景:出如今文件讀取或者展現圖片等對文件讀取交互的功能塊。