eSafe白帽駭客資安網-網絡安全背後的巨人,提供駭客,網站入侵測試,網站被駭,網站漏洞,駭客入侵,資訊安全,入侵,ecshop,wordpress,漏洞修復,木馬清除,資安服務

網站文件任意查看漏洞詳情與利用



           在對網站程序代碼的安全檢測當中,網站文件任意查看漏洞在整個網站安全報告中屬

於比較高危的網站漏洞,一般網站裡都會含有這種漏洞,尤其平台,商城,交互類的網站較

多一些,像普通權限繞過漏洞,導致的就是可以查看到網站裡的任何一個文件,甚至可以查

看到網站的配置文件config.php conn.php等等。
 
 
我們eSafe白帽資安網公司在對gitea開源程序代碼進行網站安全檢測的時候發現存在網站文件任意查

看漏洞,沒有授權的任意一個用戶的賬號都可以越權創建gitea的lfs對
象,這個對象通俗來講

就是可以利用gitea代碼裡寫好的第三方api借口,進行訪問
,可以實現如下功能:讀取文件,

上傳文件,列目錄等等的一些讀寫分離操作。其
中API李的oid是gitea對象的一個值,這個值是

用的哈希,在前端輸入的過程中並
沒有對其進行ID值的判斷與安全過濾,導致可以插入任意的

字符傳入到主機的後
端中去,導致可以執行查看文件的漏洞。我們來現場還原下網站漏洞的

利用:
 
首先POST數據過去,POST到的地址為 /vulhub文件夾下的repo.git目錄/info/lfs/objects文件。

如下圖:

 

 
我們POST數據過去的時候就可以在OID這個值裡插入一些可以查看網站文件的代碼,但是

這個漏洞是需要有前提條件的,就是gitea默認開啟公開訪問,然後在創建
gitea對象的時候,

才會產生繞過權限查看文件的漏洞,為什麼說要公開訪問,是
因為公開以後,之前創建的

gitea對像才會生效,緊接著檢查當前用戶是否有權限
訪問LFS對象。我們看到我們POST發

送數據過去以後,返回來的數據包是200狀態,
也就是發送成功,gitea對像已經成功創建了

,我們POST數據裡寫的oid=值
是....../../../etc/passwd,這個代碼的意思就是查看系統根目

錄下的etc文件夾
下的linux 用戶密碼文件。

 
接下來我們就要查看這個/etc/passwd文件裡的內容了,該如何查看這個密碼文件呢? 我們

用get的方式進行提交,我們編輯一下網址:
 
http://esafe.tw.com/vulhub/repo.git/info/lfs/objects/ [....../../../etc/passwd]/sth,然後打開

chinaz的url編碼工具進行編碼一下,
就可以了,我們get提交訪問的時候就查看到了

/etc/passwd文件的內容。

 
 
 
那麼該網站漏洞是如何產生的呢?
 
我們來看下gitea的程序源代碼,發現代碼裡的meta.oid值是調用的transformKey函數,這

個函數的作用就是將oid的值轉換成了其他的編碼方式,導致字符裡內容
可以隨意寫入,

沒有長度限制,文字限制,當我們POST把oid值改
為....../../../etc/passwd的時候就可以直

接調取了這個文件並讀取出來。
 
網站漏洞修復建議:
 
盡快升級gitea的版本,並做好網站安全加固,POST數據包進行安全過濾,有條件的話請部

署get post防火牆,對get post方式提交的數據進行安全過濾,當發現查
看系統文件的時候,

比如:/etc/passwd請直接過濾攔截,並返回301狀態。
分享: