Web安全:代碼泄露
代碼泄露一般有SVN代碼泄露及GIT代碼泄露。例如在使用SVN管理本地代碼過程中,會自動生成一個名為SVN的隱藏文件夾,其中包含重要的代碼信息。但一些開發者在發布代碼的時候,直接復制代碼文件夾到Web服務器,這就使SVN隱藏文件夾暴露于外網。攻擊者可利用該漏洞下載網站的代碼,再從代碼里獲得數據庫的連接密碼或者通過代碼分析出新的系統漏洞,進一步入侵系統。
另外,也有大量的開發者使用GIT進行版本控制及對站點進行自動部署。如果配置不當,可能會將GIT文件夾直接部署到線上環境,這就引起了GIT文件泄露。攻擊者可直接從泄露的代碼中獲取敏感配置信息(如郵箱及數據庫等),也可以進一步審計代碼,挖掘文件上傳及SQL注入等安全漏洞。
總體來講,代碼泄露是開發者安全意識不到位造成的。
例1:某站存在SVN代碼泄露。開啟瀏覽器,輸入某站主域名/.svn/entries,Web服務器返回信息如圖1所示。
圖1 SVN代碼泄露
由圖1可見,這里可能存在SVN代碼泄露。攻擊者繼續使用SVN代碼泄露利用工具,如圖2所示。
圖2 SVN代碼泄露利用工具
我們可以看到,Web目錄結構已經出來了,如圖3所示。
圖3 Web目錄結構
幾分鐘后,代碼就下載完成,打開index.php文件,可以看到是服務器代碼而非HTML代碼,如圖4所示。
圖4 服務器代碼
由圖4可見,這里確實存在SVN代碼泄露。此時,攻擊者就可以對該站點進行目錄結構分析、敏感信息收集(如數據庫鏈接文件)或者代碼審計,試圖尋找SQL注入、文件上傳等漏洞實施進一步的滲透測試。
例2:某站存在GIT文件泄露。開啟瀏覽器,輸入某站主域名/.gitignore,Web服務器返回信息如圖5所示。
圖5 GIT文件下載
下載GIT文件,如圖6所示。
圖6 GIT文件泄露
可以看到,GIT文件中的內容其實已經泄露了Web站點的代碼的目錄結構。訪問robots.txt文件,Web服務器返回信息如圖7所示。
圖7 GIT文件泄露
由圖7可見,這里確實存在GIT文件泄露。如果想通過該GIT文件下載該Web站點的代碼,可以使用GitHack這個工具。