../是返回上一級路徑
任意文件下載
原理:
1:文件下載漏洞介紹
? ? ? ?一些網站由于業(yè)務需求漫玄,往往需要提供文件下載或者查看功能婴氮,但若對用戶查看或者下載? ? ? ? ? ?的文件不做限制暇昂,則惡意用戶就能夠下載任意敏感文件,這就是文件查看與下載漏 洞。
2:任意文件下載原理
程序員在寫代碼時候沒有對任意文件下載的參數(shù)進行過濾,沒有指定哪個目錄下載文件肢执。
3:一般鏈接形式
①. download.php?path=? ? ? ? ? ? ? ? ? ②. down.php?file=? ? ? ? ? ? ? ? ? ? ? ? ? ? ?③ .data.php?file=
? ? ? 或者包含參數(shù):
①. &Src=? ? ? ? ? ? ②.? &Inputfile=? ? ? ? ? ? ? ?③. &Filepath=? ? ? ? ? ④. &Path=? ? ? ? ? ?⑤. &Data=
4:當遇到一個任意文件下載時,我們的一般利用思路:
? ? (1)下載常規(guī)的配置文件译红,例如: ssh,weblogic,ftp,mysql等相關配置
? ? (2)下載各種.log文件预茄,從中尋找一些后臺地址,文件上傳點之類的地方侦厚,如果運氣好的話會? ? ? ? ? ? ?獲得一些前輩們的后門耻陕。
? ? (3)下載web業(yè)務文件進行白盒審計,利用漏洞進一步攻入服務器刨沦。
? ? ? 嘗試讀取/root/.bash_history看自己是否具有root權限诗宣。如果沒有的話。我們只能按部就班的利用../來回跳轉讀取一些.ssh下的配置信息文件想诅,讀取mysql下的.bash_history文件召庞。來查看是否記錄了一些可以利用的相關信息。然后逐個下載我們需要審計的代碼文件来破,但是下載的時候變得很繁瑣篮灼,我們只能嘗試去猜解目錄,然后下載一些中間件的記錄日志進行分析徘禁。
如果我們遇到的是java+oracle環(huán)境
? ? ? 可以先下載/WEB-INF/classes/applicationContext.xml 文件穿稳,這里面記載的是web服務器的相應配置,然后下載/WEB-INF/classes/xxx/xxx/ccc.class對文件進行反編譯晌坤,然后搜索文件中的upload關鍵字看是否存在一些api接口,如果存在的話我們可以本地構造上傳頁面用api接口將我們的文件傳輸進服務器
如果具有root權限
? ? ? 在linux中有這樣一個命令 locate 是用來查找文件或目錄的旦袋,它不搜索具體目錄骤菠,而是搜索一個數(shù)據(jù)庫/var/lib/mlocate/mlocate.db。這個數(shù)據(jù)庫中含有本地所有文件信息疤孕。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫商乎,并且每天自動更新一次。當我們不知道路徑是什么的情況下祭阀,這個可以說是一個核武器了鹉戚,我們利用任意文件下載漏洞mlocate.db文件下載下來鲜戒,利用locate命令將數(shù)據(jù)輸出成文件,這里面包含了全部的文件路徑信息抹凳。
locate 讀取方法: locate mlocate.db admin? ? //可以將mlocate.db中包含admin文件名的內容全部輸出來
(5)常見利用文件
/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 //記錄系統(tǒng)掛載設備
/porc/config.gz //內核配置文件
/var/lib/mlocate/mlocate.db //全文件路徑
/porc/self/cmdline //當前進程的cmdline參數(shù)
三遏餐、漏洞修復
(1)過濾".",使用戶在url中不能回溯上級目錄
(2)正則嚴格判斷用戶輸入參數(shù)的格式
(3)php.ini配置open_basedir限定文件訪問范圍