亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP6.0中怎么利用Getshell創建任意文件

發布時間:2021-07-09 16:58:12 來源:億速云 閱讀:334 作者:Leah 欄目:安全技術

這篇文章將為大家詳細講解有關ThinkPHP6.0中怎么利用Getshell創建任意文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

0x01簡介

ThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協議發布,從Struts結構移植過來并做了改進和完善,同時也借鑒了國外很多優秀的框架和模式,使用面向對象的開發結構和MVC模式,融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服務器環境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多種數據庫以及PDO擴展,ThinkPHP框架本身沒有什么特別模塊要求,具體的應用系統運行環境要求視開發所涉及的模塊。

該漏洞源于ThinkPHP 6.0的某個邏輯漏洞,成功利用此漏洞的攻擊者可以實現“任意”文件創建,在特殊場景下可能會導致GetShell。

0x02漏洞概述

2020年1月10日,ThinkPHP團隊發布一個補丁更新,修復了一處由不安全的SessionId導致的任意文件操作漏洞。該漏洞允許攻擊者在目標環境啟用session的條件下創建任意文件以及刪除任意文件,在特定情況下還可以getshell。

0x03影響范圍

ThinkPHP6.0.0-6.0.1

0x04環境搭建

1.phpstudy中PHP設置成7.2版本,并把對應的文件夾放入環境變量path中

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

2.在Phpstudy服務器中打開php.ini文件,找到extension=php_openssl.dll前面的分號去掉,意思是打開ssl擴展,目的是為了能在cmd命令中能進行訪問

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

3.安裝composer.phar,找到下載內容的地方,去下載當前最新版本的composer.phar

下載地址https://getcomposer.org/download/

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

4. 雙擊安裝,不用勾選,選擇下一步

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

5.配置環境變量后自動選擇了

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

然后一直下一步,安裝完成

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

輸入composer查看是否安裝成功

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

6.安裝tp6 php composer.phar create-project topthink/think tp 6.0.*

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

我這個時間Thinkphp的最新版是6.0.3,用上面的命令下載下來framework是6.0.3版本的,我們需要再執行一條命令,進入下載的目錄tp6,使用cmd命令

composer require topthink/framework:6.0.0

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

8. 瀏覽器訪問一下

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

0x05漏洞復現

首先在得到可控session參數名,這是本地構造的,實戰需要自己fuzz。

構造位置:tp6\app\controller\index.php

構造的內容

use think\facade\Session;

Session::set('user',$_GET['username']);

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

開啟session且寫入的session可控,/tp6/app/middleware.php 文件開啟session,去掉注釋session的//

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

使用Burp抓取首頁的包構造payload:username就是我們剛才構造的接受參數,然后將PHPSESSID的值修改為32位的保存路徑

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

點擊發送,在瀏覽器訪問

ThinkPHP6.0中怎么利用Getshell創建任意文件點擊此處添加圖片說明文字

0x06修復方式

官方給出的修復方式

對session id 加一個過濾 使用 ctype_alnum()

$this->id = is_string($id) && strlen($id) === 32 ctype_alnum($id) && ? $id : md5(microtime(true) . session_create_id());

關于ThinkPHP6.0中怎么利用Getshell創建任意文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邻水| 成都市| 玉溪市| 桃源县| 喀喇| 墨脱县| 理塘县| 芦溪县| 本溪市| 马龙县| 来安县| 凤冈县| 黄山市| 北海市| 永清县| 莆田市| 内江市| 买车| 任丘市| 阳信县| 安宁市| 夏河县| 喀喇沁旗| 进贤县| 梁平县| 若羌县| 灵台县| 台南市| 和田市| 弥渡县| 万宁市| 庆云县| 屏南县| 蕉岭县| 砀山县| 抚顺县| 淮北市| 京山县| 金华市| 大化| 郎溪县|