CTFshow 反序列化 web266
生活随笔
收集整理的這篇文章主要介紹了
CTFshow 反序列化 web266
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 源碼
- 思路
- 題解
- 總結(jié)
源碼
<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-12-04 23:52:24 # @Last Modified by: h1xa # @Last Modified time: 2020-12-05 00:17:08 # @email: h1xa@ctfer.com # @link: https://ctfer.com*/highlight_file(__FILE__);include('flag.php'); $cs = file_get_contents('php://input');class ctfshow{public $username='xxxxxx';public $password='xxxxxx';public function __construct($u,$p){$this->username=$u;$this->password=$p;}public function login(){return $this->username===$this->password;}public function __toString(){return $this->username;}public function __destruct(){global $flag;echo $flag;} } $ctfshowo=@unserialize($cs); if(preg_match('/ctfshow/', $cs)){throw new Exception("Error $ctfshowo",1); }思路
destruct會(huì)在腳本結(jié)束后銷毀,而拋出異常導(dǎo)致無(wú)法立即執(zhí)行destruct,所以我們要進(jìn)行快速析構(gòu)
原理:當(dāng)php接收到畸形序列化字符串時(shí),PHP由于其容錯(cuò)機(jī)制,依然可以反序列化成功。但是,由于你給的是一個(gè)畸形的序列化字符串,總之他是不標(biāo)準(zhǔn)的,所以PHP對(duì)這個(gè)畸形序列化字符串得到的對(duì)象不放心,于是PHP就要趕緊把它清理掉,那么就觸發(fā)了他的析構(gòu)方法。
方法
題解
總結(jié)
水題
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的CTFshow 反序列化 web266的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CTFshow 反序列化 web264
- 下一篇: CTFshow 反序列化 web267