本文由紅日安全成員: 愛夕 編寫,若有不當,還望斧正。php
你們好,咱們是紅日安全-Web安全***小組。此項目是關於Web安全的系列文章分享,還包含一個HTB靶場供你們練習,咱們給這個項目起了一個名字叫 Web安全實戰 ,但願對想要學習Web安全的朋友們有所幫助。每一篇文章都是於基於漏洞簡介-漏洞原理-漏洞危害-測試方法(手工測試,工具測試)-靶場測試(分爲PHP靶場、JAVA靶場、Python靶場基本上三種靶場所有涵蓋)-實戰演練(主要選擇相應CMS或者是Vulnhub進行實戰演練),若是對你們有幫助請Star鼓勵咱們創做更好文章。若是你願意加入咱們,一塊兒完善這個項目,歡迎經過郵件形式(sec-redclub@qq.com)聯繫咱們。css
敏感數據包括但不限於:口令、密鑰、證書、會話標識、License、隱私數據(如短消息的內容)、受權憑據、我的數據(如姓名、住址、電話等)等,在程序文件、配置文件、日誌文件、備份文件及數據庫中都有可能包含敏感數據。主要分爲由版本管理軟件致使的泄露, 文件包含致使的泄露和配置錯誤致使的泄露.html
因爲後臺人員的疏忽或者不當的設計,致使不該該被前端用戶看到的數據被輕易的訪問到。 好比:前端
經過訪問url下的目錄,能夠直接列出目錄下的文件列表;mysql
輸入錯誤的url參數後報錯信息裏面包含操做系統、中間件、開發語言的版本或其餘信息;git
前端的源碼(html,css,js)裏面包含了敏感信息,好比後臺登陸地址、內網接口信息、甚至帳號密碼等;github
相似以上這些狀況,咱們成爲敏感信息泄露。敏感信息泄露雖然一直被評爲危害比較低的漏洞,但這些敏感信息每每給***着實施進一步的***提供很大的幫助,甚至「離譜」的敏感信息泄露也會直接形成嚴重的損失。 所以,在web應用的開發上,除了要進行安全的代碼編寫,也須要注意對敏感信息的合理處理。web
二、手工挖掘,根據web容器或者網頁源代碼的查看,找到敏感信息。算法
掃描內網開放服務sql
向內部任意主機的任意端口發送payload來***內網服務
DOS***(請求大文件,始終保持鏈接Keep-Alive Always)
***內網的web應用,例如直接SQL注入、XSS***等
利用file、gopher、dict協議讀取本地文件、執行命令等
一、檢測形式多樣,工具爬蟲掃描獲得敏感文件的路徑,從而找到敏感數據,主要是仍是經過關鍵詞爆破。
二、手工挖掘,根據web容器或者網頁源代碼的查看,Github,找到敏感信息。
軟件敏感信息
操做系統版本
可用nmap掃描得知
中間件的類型、版本
http返回頭
404報錯頁面
使用工具(如whatweb)
web程序(cms類型及版本、敏感信息)
可用whatweb、cms_identify
Web敏感信息
phpinfo()信息泄露
http://[ip]/test.php和http://[ip]/phpinfo.php
測試網頁泄露在外網
test.cgi、phpinfo.php、info.php等
編輯器備份文件泄漏在外網
http://[ip]/test.php.swp
http://[ip]/test.php.bak
http://[ip]/test.jsp.old
http://[ip]/cgi~
常見編輯器備份後綴
版本管理工具(如git)文件信息泄露
http://[ip]/.git/config
http://[ip]/CVS/Entriesp
http://[ip]/.svn/entriesp
HTTP認證信息泄露
http://[ip]/basic/index.php
we目錄開啓了HTTP Basic認證,但未限制IP,致使可暴力破解帳號,密碼
管理後臺地址泄露
http://[ip]/login.php
http://[ip]/admin.php
http://[ip]/manager.php
http://[ip]/admin_login.php
泄露員工郵箱、分機號碼
泄露郵箱及分機號碼可被社工、也可生成字典。
錯誤頁面暴露信息
mysql錯誤、php錯誤、暴露cms版本等
探針文件
robots.txt
phpMyAdmin
網站源碼備份文件(www.rar/sitename.tar.gz/web/zip等)
其餘
網絡信息泄露
DNS域傳送漏洞運維監控系統弱口令、網絡拓撲泄露、zabbix弱口令、zabbix sql注入等
第三方軟件應用
github上源碼、數據庫、郵箱密碼泄露
搜相似:smtp 163 password關鍵字百度網盤被員工不當心上傳敏感文件
*QQ羣被員工不當心上傳敏感文件
敏感信息蒐集工具
https://github.com/ring04h/weakfilescan
https://github.com/lijiejie/BBScan
whatweb
dnsenum
github
URL=https://game.gtimg.cn/hosts
以前在騰訊的圖牀站發現了騰訊的內網hosts文件暴露在公網上。
右鍵查看源代碼發現測試帳號
登錄成功
不安全的錯誤處理方法可能泄露系統或應用的敏感信息,手工測試的過程當中應留意各種錯誤信息,若是發現錯誤信息中包含系統或應用敏感信息,則進行記錄。就和顯錯注入同樣
一、禁止在代碼中存儲敏感數據:禁止在代碼中存儲如數據庫鏈接字符串、口令和密鑰之類的敏感數據,這樣容易致使泄密。用於加密密鑰的密鑰能夠硬編碼在代碼中。
二、禁止密鑰或賬號的口令以明文形式存儲在數據庫或者文件中:密鑰或賬號的口令必須通過加密存儲。例外狀況,若是Web容器的配置文件中只能以明文方式配置鏈接數據庫的用戶名和口令,那麼就不用強制遵循該規則,將該配置文件的屬性改成只有屬主可讀寫。
三、禁止在cookie中以明文形式存儲敏感數據:cookie信息容易被竊取,儘可能不要在cookie中存儲敏感數據;若是條件限制必須使用cookie存儲敏感信息時,必須先對敏感信息加密再存儲到cookie。
四、禁止在隱藏域中存放明文形式的敏感數據。
五、禁止用本身開發的加密算法,必須使用公開、安全的標準加密算法。
六、禁止在日誌中記錄明文的敏感數據:禁止在日誌中記錄明文的敏感數據(如口令、會話標識jsessionid等),防止敏感信息泄漏。
七、禁止帶有敏感數據的Web頁面緩存:帶有敏感數據的Web頁面都應該禁止緩存,以防止敏感信息泄漏或經過代理服務器上網的用戶數據互竄問題。
八、應根據業務特色定義出系統存儲的敏感信息。
九、敏感信息在存儲、傳輸、顯示時應進行安全處理,可採用的處理方式爲加密或脫敏。
十、敏感信息不該使用GET方式提交到服務器。
十一、用戶密碼爲最高級別的敏感信息,在存儲、傳輸、顯示時都必須加密。
十二、須要選擇可靠的加密算法,優先選擇不對稱加密算法,不得使用BASE64等編碼方式進行「加密」
1三、對於一些系統默認報錯頁面應從新進行設計自定義報錯頁面,以避免暴露系統敏感信息。