您好,登錄后才能下訂單哦!
小編給大家分享一下大數據中任意文件讀取與下載原理及修復的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
任意文件讀取下載
由于一些網站的業務需要,往往需要提供文件讀取或下載的一個模塊,但如果沒有對讀取或下載做一個白名單或者限制,可能導致惡意攻擊者讀取下載一些敏感信息(etc/passwd 等),對服務器做下一步的進攻與威脅。
原理
沒有對讀取下載的文件做限制
漏洞利用方式
由于我們不知道敏感文件的路徑,我們可以利用../../(返回上次目錄)依次猜解,讓漏洞利用變的猥瑣。
例如
index.php?a=../../../../etc/passwd
index.php?a=file:///etc/passwd
注意:如果文件被解析的話是文件包含,如果是提示下載或者顯示源代碼就是文件下載或讀取
1.文件被解析,則是文件包含漏洞
2.顯示源代碼,則是文件查看漏洞
3.提示下載,則是文件下載漏洞
漏洞的危害:
通過任意文件下載,可以下載服務器的任意文件,web業務的代碼,服務器和系統的具體配置信息,也可以下載數據庫的配置信息,以及對內網的信息探測等等。
總體來說,任意文件下載漏洞的利用主要是為了信息收集,我們通過對服務器配置文件的下載,獲取到大量的配置信息、源碼,從而根據獲取的信息來進一步挖掘服務器漏洞從而入侵。以下整理了一些下載利用文件:
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配置信息
C:\Windows\win.ini //Windows系統的一個基本系統配置文件
Linux:
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //記錄每個訪問計算機用戶的公鑰
/etc/passwd
/etc/shadow
/etc/my.cnf //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用戶歷史命令記錄文件
/root/.mysql_history //mysql歷史命令記錄文件
/proc/mounts //記錄系統掛載設備
/porc/config.gz //內核配置文件
/var/lib/mlocate/mlocate.db //全文件路徑
/porc/self/cmdline //當前進程的cmdline參數
實戰
首先來到這個網址,發現有下載功能點開查看url
http://192.168.1.100/pikachu/pikachu-master/vul/unsafedownload/execdownload.php?filename=kb.png
filename=xxx,嘗試下載我D盤下的1.php文件
http://192.168.1.100/pikachu/pikachu-master/vul/unsafedownload/execdownload.php?filename=../../../../../../../1.php
成功下載到本地,下載其他敏感文件同理
詳細利用思路
JSP站點
嘗試下載tomcat-users.xml文件,里面保存了管理Tomcat的賬號密碼,該文件在:Tomcat安裝目錄/conf/tomcat-users.xml,下載該文件之后,就能獲取管理員賬號密碼,然后登陸管理后臺,部署帶有木馬文件的war包。
aspx站點
aspx站點一般后臺都是SQL Server數據庫,因此利用該漏洞的最簡單的方法是下載網站根目錄下的web.config文件,該文件中一般含有數據庫的用戶名和密碼。
asp站點
一般的asp站點都是Access數據庫,而Access數據庫可以直接下載,因此利用該漏洞比較簡便的方法就是直接下載Access數據庫,找到管理員密碼登陸后臺,利用后臺的上傳功能,上傳shell。首先目的是找到數據庫文件名以及存放的路徑。找到網站與數據庫操作的動態頁面,動態頁面中一般使用include包含連接數據庫的配置文件。一般網站的管理后臺頁面會包含這個信息,所以可以使用任意文件下載漏洞下載管理后臺頁面,例如admin.asp/mamage.asp等。在這些文件中一般會寫有數據庫文件的路徑以及文件名。直接下載數據庫文件可能下載不了,因為管理員一般會做限制,禁止直接下載mdb文件,可以使用任意文件下載漏洞來下載數據庫文件。
php站點
php一般是使用MySQL數據庫, 一般MySQL數據庫禁止遠程連接,但是可以使用phpMyAdmin進行管理。同意,嘗試下載數據庫連接文件,conf/config.php等等,獲取數據庫賬戶密碼之后,如果是root權限,在知道網站絕對路徑的情況下,嘗試直接寫入一句話木馬
下載和讀取的目的都是一樣,獲取服務器的敏感信息
當然還可以有很多用途,反正盡量把所有重要的配置文件以及代碼走一遍流程,盡可能最大化的滲透進去
修復方案
1.過濾../等敏感字符,使用戶在url中不能回溯上級目錄
2.文件下載時判斷輸入的路徑,最好的方法是文件應該在數據庫中進行一一對應,避免通過輸入絕對路徑來獲取文件
3.php.ini配置open_basedir限定文件訪問范圍
以上是“大數據中任意文件讀取與下載原理及修復的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。