亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

php代碼審計之ThinkPHP5的文件包含漏洞詳解

瀏覽:110日期:2022-06-14 08:48:32
漏洞影響范圍

加載模版解析變量時存在變量覆蓋問題,導致文件包含漏洞的產生 漏洞影響版本:5.0.0<=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10

我復現用的是5.1.15

(PS:這里附上thinkphp5.1 手冊本站下載地址:https://www.jb51.net/books/729512.html)

環境配置要將將 application/index/controller/Index.php 文件代碼設置如下:

<?phpnamespace app\index\controller;use think\Controller;class Index extends Controller{? ? public function index() ? {? ? ? ? $this->assign(request()->get()); ? ? ? return $this->fetch(); // 當前模塊/默認視圖目錄/當前控制器(小寫)/當前操作(小寫).html ? }}

創建 application/index/view/index/index.html 文件,內容隨意(沒有這個模板文件的話,在渲染時程序會報錯)

漏洞分析

先跟進assign方法

再跟進

array_merge() 函數用于把一個或多個數組合并為一個數組。

只是賦值操作,跟進下面的fetch

繼續跟進

用于$this引用當前對象。用于self引用當前類。換句話說, $this->member用于非靜態成員,self::$member用于靜態成員。

范圍解析運算符(也稱為 Paamayim Nekudotayim)或更簡單的術語是雙冒號,是一個允許訪問類的 靜態、 常量和重寫屬性或方法的標記。

fetch 前面的方法 主要是加載模板輸出。這里的method值可以追溯到view\driver\Think.php 視圖引擎

跟入84行fetch進入think\templae.php

第200行在讀取的時候采用了一個read的方法。繼續跟進read,進入template\driver\File.php

危險危險危險!!這里調用了一個extract函數,可控變量 $vars 賦值給 $this->data 并最終傳入 File 類的 read 方法。而 read 方法中在使用了 extract 函數后,直接包含了 $cacheFile 變量。這里就是漏洞發生的關鍵原因(可以通過 extract 函數,直接覆蓋 $cacheFile 變量,因為 extract 函數中的參數 $vars 可以由用戶控制)。

這里extract 該函數使用數組鍵名作為變量名, EXTR_OVERWRITE 變量存在則覆蓋

EXTRACT() 函數用于返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。

POChttp://localhost:8000/index/index/index?cacheFile=shell.jpg

圖片馬 shell.jpg 放至 public 目錄下(模擬上傳圖片操作)。

標簽: PHP
相關文章:
主站蜘蛛池模板: 婷婷久久综合 | 狠狠色欧美亚洲狠狠色五 | 曰曰啪天天拍视频在线 | 小黄鸭污视频 | 男女一级特黄a大片 | 国产精品国产午夜免费福利看 | 亚洲国产一区二区三区四区五区 | 国产网站视频 | 国产成人精品视频午夜 | 高h辣肉各种姿势爽文bl | 九九九九在线精品免费视频 | 亚洲九九香蕉 | 一区二区三区网站 | 美女隐私视频黄www免费 | www麻豆视频 | 亚洲一二区 | 久久精品这里 | 羞羞答答www网址进入在线观看 | 男女又黄又刺激黄a大片桃色 | 91蝌蚪在线播放 | 亚洲免费黄色片 | 一级做a爰片性色毛片新版的 | 五月天婷婷在线视频国产在线 | 成人国产精品免费视频 | 免费视频成人国产精品网站 | 青青青国产色视频在线观看 | 国产精品国色综合久久 | 欧美性色福利视频在线观看 | 国产精品欧美亚洲韩国日本99 | 久久777国产线看是看精品 | 成人免费视频观看无遮挡 | 二区在线观看 | 国产主播福利一区二区 | 亚洲国产毛片 | 亚洲精品一区二区三区婷婷 | 亚洲欧美日韩另类精品一区二区三区 | 免费的黄色网址 | 久久99精品久久久久久综合 | 国产精品成人观看视频国产奇米 | 亚洲综合色婷婷 | japanese日本护士xx亚洲 |