風炫安全WEB安全學習第四十四節課 敏感資訊洩漏
敏感資訊洩漏
0x01 漏洞簡介
敏感資料包括但不限於:口令、金鑰、證書、會話標識、License、隱私資料(如短訊息的內容)、授權憑據、個人資料(如姓名、住址、電話等)等,在程式檔案、配置檔案、日誌檔案、備份檔案及資料庫中都有可能包含敏感資料。主要分為由版本管理軟體導致的洩露, 檔案包含導致的洩露和配置錯誤導致的洩露.
0x02 漏洞原理
由於後臺人員的疏忽或者不當的設計,導致不應該被前端使用者看到的資料被輕易的訪問到。 比如:
- 通過訪問url下的目錄,可以直接列出目錄下的檔案列表;
- 輸入錯誤的url引數後報錯資訊裡面包含作業系統、中介軟體、開發語言的版本或其他資訊;
- 前端的原始碼(html,css,js)裡面包含了敏感資訊,比如後臺登入地址、內網介面資訊、甚至賬號密碼等;
由於網站開發人員或者運維人員疏忽,存放敏感資訊的檔案被洩露或由於網站執行出錯導致敏感資訊洩露。
0x03 漏洞利用
漏洞分類
-
phpinfo資訊洩漏 (演示)
/test.php /p.php /phpinfo.php /info.php
-
編輯器備份檔案
.asdad.swp .asdasd.bak *.old
-
日誌檔案
*.log /data/mysql_error_trace.inc
-
版本管理工具檔案資訊洩露
.git/ .git/config .svn/entriesp CVS/Entriesp .gitignore
https://github.com/lijiejie/GitHack
git原始碼恢復工具 (演示) -
關鍵功能性地址洩露
/admin/ /manage/ /login.php /manage.php /phpMyAdmin /phpmyadmin
-
網站原始碼備份檔案
www.rar {sitename}.tar.gz web.zip/tar.gz/rar
-
網站前端HTML原始碼資訊洩漏
-
Http Header返回頭 (演示)
Server Cookie 中介軟體的型別、版本
-
報錯資訊
- mysql錯誤
- php錯誤 (暴露出網站絕對路徑)
- 暴露cms版本
-
原始碼託管平臺 (演示)
原始碼託管,是公共專案的導致敏感資訊洩漏- github
- gitee
-
其他
robots.txt
相關利用工具
這種型別的漏洞是可以藉助基於目錄掃描的工具實現自動化探測的
https://github.com/ring04h/weakfilescan
https://github.com/lijiejie/BBScan
whatweb
御劍掃描器
Skipfish
0x04漏洞防禦
1、禁止在程式碼中儲存敏感資料:禁止在程式碼中儲存如資料庫連線字串、口令和金鑰之類的敏感資料,這樣容易導致洩密。用於加密金鑰的金鑰可以硬編碼在程式碼中。
2、禁止金鑰或帳號的口令以明文形式儲存在資料庫或者檔案中:金鑰或帳號的口令必須經過加密儲存。例外情況,如果Web容器的配置檔案中只能以明文方式配置連線資料庫的使用者名稱和口令,那麼就不用強制遵循該規則,將該配置檔案的屬性改為只有屬主可讀寫。
3、禁止在cookie中以明文形式儲存敏感資料:cookie資訊容易被竊取,儘量不要在cookie中儲存敏感資料;如果條件限制必須使用cookie儲存敏感資訊時,必須先對敏感資訊加密再儲存到cookie。
4、禁止在隱藏域中存放明文形式的敏感資料。
5、禁止用自己開發的加密演算法,必須使用公開、安全的標準加密演算法。
6、禁止在日誌中記錄明文的敏感資料:禁止在日誌中記錄明文的敏感資料(如口令、會話標識jsessionid等),防止敏感資訊洩漏。
7、禁止帶有敏感資料的Web頁面快取:帶有敏感資料的Web頁面都應該禁止快取,以防止敏感資訊洩漏或通過代理伺服器上網的使用者資料互竄問題。
8、上線之前檢查網站目錄沒有其他的備份檔案
9、配置Web容器不能訪問.開頭的檔案