您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關ThinkPHP6.0任意文件如何創建Getshell復現,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
2020年1月10日,ThinkPHP團隊發布一個補丁更新,修復了一處由不安全的SessionId導致的任意文件操作漏洞。該漏洞允許攻擊者在目標環境啟用session的條件下創建任意文件以及刪除任意文件,在特定情況下還可以getshell。
0x03 影響版本
ThinkPHP 6.0.0-6.0.1
0x04 環境搭建
https://getcomposer.org/download/
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer create-project topthink/think tp6 (tp6自定義)
出現報錯可參考:
http://www.jrnw.net/index.php/2019/05/30/thinkphp6%E6%A1%86%E6%9E%B6%E6%BA%90%E7%A0%81%E7%9A%84%E4%B8%8B%E8%BD%BD%E4%B8%8E%E5%AE%89%E8%A3%85%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B/
將 tp6/composer.json 文件的 "topthink/framework": "^6.0.0" 改成 6.0.0 版本,并執行更新命令
進入tp6目錄cd tp6composer update
PS:
如果是linux 就再執行啟動環境 :./think run --host=0.0.0.0 --port=8000
如果不能拉取到環境,公眾號內回復“tp60環境”獲取
0x05 漏洞利用
需要增加構造的內容:
use think\facade\Session;Session::set('user',$_GET['username']);
0x06 坑點
1、本地測試localhost失敗
問題:
當我們用localhost去測試poc的時候,請求中自帶cookie,即使修改也沒用
解決:
通過IP去測試,127.0.0.1 或者內網IP
2、shell選擇
問題:
在最新版的phpstudy測試菜刀馬失敗
解決:
冰蝎的shell可以用。
0x07 修復方式
官方給出方案
對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復現了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。