1.点开链接,题目给了提示,于是我尝试了?ip=127.0.0.1,发现没反应
2.仔细一看发现那个问号和i有空格,试了一下英文,发现还真不一样,这回页面给了提示
3.查看目录,发现有两个文件
4.访问index.php文件时,提示我们需要过滤空格
5.这个我们使用$IFS$1这个方法过滤,页面给出显示如下
6.
这段代码是一个PHP脚本,它接受一个IP地址作为输入,然后执行一个ping命令,将结果输出到屏幕上。在这个脚本中,首先使用了preg_match函数来检查输入的IP地址是否包含一些特殊字符,如单引号、双引号、反斜杠、括号、方括号、花括号等等。如果输入的IP地址包含这些字符,脚本将会输出“fxck your symbol!”并退出。接下来,脚本使用preg_match函数检查输入的IP地址是否包含空格,如果包含空格,脚本将会输出“fxck your space!”并退出。然后,脚本使用preg_match函数检查输入的IP地址是否包含“bash”字符串,如果包含,脚本将会输出“fxck your bash!”并退出。最后,脚本使用preg_match函数检查输入的IP地址是否包含“flag”字符串,如果包含,脚本将会输出“fxck your flag!”并退出。如果输入的IP地址没有包含上述特殊字符,脚本将会执行一个ping命令,将结果输出到屏幕上。
7.这里最后提示可以输入一个参数a但是a的值是什么,我们也不知,但是在构造的时候又不能出现flag所以我们可以让a=g,这样就可避免出现黑名单的字符。所以最终可以构造/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
8.构造好之后,页面显示如下
9.接下来我们查看源码,得到了flag
10.
flag{1e540677-7c4f-4f17-9f30-f56eab388345}