<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 文件下載漏洞 文件下載功能在很多web系統上都會出現,如果后臺在收到請求的文件名后,將其直接拼進下載文件的路徑中而不對其進行安全判斷的話,則可能會引發不安全的文件下載漏洞。 ### 漏洞危害和利用條件: **危害** * 下載服務器任意文件,如腳本代碼,服務及系統配置文件等; * 可用得到的代碼進一步代碼審計,得到更多可利用漏洞 **利用條件** 1. 存在讀文件的函數 2. 讀取文件的路徑用戶可控且未校驗或校驗不嚴 3. 輸出了文件內容 ### 漏洞發現: **1、Google hacking利用:** ``` #payload inurl:"readfile.php?file=" ``` **2、從鏈接上看:** ``` download.php?path= download.php?file= down.php?file= data.php?file= readfile.php?file= read.php?filename= ``` **3、從參數名看:** ``` &Data= &path= &src= &Inputfile= &read?le= &?lepath= &RealPath= &dis= &url= &Lang= &urls= &menu= &?lep= ``` ### 漏洞驗證: 在找到下載文件的的url后,將url中的文件參數,替換為各種穿越目錄,看是否能下載到相應的文件,如果能下載,就有下載漏洞 ```html #原url:http:#xx.com/index.php?f=logo.png http:#xx.com/index.php?f=../../../../../../etc/passwd http:#xx.com/index.php?f=../index.php http:#xx.com/index.php?f=?le:#/etc/passwd ``` >當參數f的參數值為php文件時,若是文件被解析則是文件包含漏洞,若顯示源碼或提示下載則是文件查看與下載漏洞。 ### 文件下載漏洞利用思路: 嘗試讀取/root/.bash\_history看自己是否有root權限 #### 1、正常情況下的利用思路: 1. 下載常規的配置文件,例如: ssh,weblogic,ftp,mysql等相關配置 2. 下載各種.log文件,從中尋找一些后臺地址,文件上傳點之類的地方。 3. 下載web業務文件進行白盒審計,利用漏洞進一步攻入服務器。 #### 2、當遇到權限問題的時候: * 如果具有root權限 這時候很多人肯定會說,具有root權限直接去讀shadow文件了,但是很多時候我們遇到的服務器可能只對外開放了80,443端口,這時候我們即使獲得了密碼作用也不大,但是具備root權限對任意文件下載利用是絕好的。 下載/var/lib/mlocate/mlocate.db這個linux文件搜索庫,然后利用`locate mlocate.db xxname` 搜索任意文件的具體路徑 >locate 是用來查找文件或目錄的,它不搜索具體目錄,而是搜索一個數據庫/var/lib/mlocate/mlocate.db。這個數據庫中含有本地所有文件信息。Linux系統自動創建且每天自動更新一次。 * 如果沒有root權限 只能按部就班的利用`../`來回跳轉讀取一些文件,如`.ssh`下的配置信息文件,讀取mysql下的.bash\_history文件。來查看是否記錄了一些可以利用的相關信息。然后逐個下載我們需要審計的代碼文件 是下載的時候變得很繁瑣,只能嘗試去猜解目錄,然后下載一些中間件的記錄日志進行分析。 >如我們遇到的是java/jsp+oracle環境,可以先下載/WEB-INF/classes/applicationContext.xml文件,這里面記載的是web服務器的相應配置, >然后下載/WEB-INF/classes/xxx/xxx/ccc.class對文件進行反編譯, >然后搜索文件中的upload關鍵字看是否存在一些api接口,如果存在的話我們可以本地構造上傳頁面用api接口將我們的文件傳輸進服務器。 ### 任意文件下載防御: * 過濾".",使用戶在url中不能回溯上級目錄 * 正則嚴格判斷用戶輸入參數的格式(寫死路徑) * php.ini配置`open_basedir`限定文件訪問范圍 >如果下載的目標文件是由前端傳進來的,則一定要對傳進來的文件進行安全考慮。 切記:所有與前端交互的數據都是不安全的,不能掉以輕心!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看